【问题标题】:Syncing Core Data Databases in iOS applications在 iOS 应用程序中同步核心数据数据库
【发布时间】:2011-07-06 19:26:12
【问题描述】:

我对 Core Data 迁移有疑问。

假设我有一个应用程序,它在表 A 中有一些预定义的值。我想将它与另一个数据库和表 B 同步,这样当新记录添加到表 B 时,该记录应该被添加到我的桌子 A。

我知道使用 Core Data 迁移,当我向表中添加列时,我将能够访问在添加列之前存储在旧表中的值。

我想知道如何使用另一个表上添加的记录来更新我的表。

更新:

来自下面的评论:

我想到的问题是...... 我想发布我的更新 应用程序。我被困在如何更新 现有的核心数据数据库,其中也 存储用户输入的数据。所有我 需要做的是更新几个 记录并保存当前用户 数据。我该怎么做?

【问题讨论】:

    标签: iphone core-data core-data-migration


    【解决方案1】:

    核心数据不是 SQL。实体不是表格。对象不是行。列不是属性。 Core Data 是一个对象图管理系统,它可能会也可能不会持久化对象图,并且可能会或可能不会在幕后使用 SQL 来做到这一点。试图用 SQL 术语来思考 Core Data 会导致您完全误解 Core Data 并导致很多痛苦和浪费时间。

    那是疯狂。

    听起来您实际上并不想迁移,因为 Core Data 中使用了该术语。 Core Data 中的迁移意味着从数据图的持久存储的早期版本迁移到相同版本的更新版本。

    例如在 1.0 版本中,您有一个实体 Person,其属性为 firstNamelastName。应用程序发布后,您希望更新到 2.0 版本并将phoneNumber 属性添加到Person 实体。您将使用迁移将用户现有的对象图和持久存储更新到新的对象图。

    如果您所说的“表”实际上是指实体,那么您可以将实体以某种关系链接在一起,以便它们可以相互观察。如果“表”是指数据模型或持久存储,那么答案会更复杂。它可以使用配置、获取的属性、UUID 等来完成,但在跳过所有这些障碍之前,您必须了解您真正需要做什么。

    【讨论】:

    • @TechZen.. 谢谢你的回答。我对我的问题一点都不清楚。我想到的问题是......我想为我的应用程序发布更新。我被困在如何更新现有的核心数据数据库,该数据库还存储用户输入的数据。我需要做的就是更新几条记录并保留当前用户数据。我该怎么做??
    • 请参阅核心数据编程指南中的迁移主题。听起来您可能不需要自动迁移功能以外的任何东西,即如果您提供新模型,Core Data 会自动升级商店。如果您需要更复杂的东西,迁移 API 几乎可以做任何事情。
    • @TechZen...谢谢您的回复。所以如果我使用迁移 API,它会自动解决我的问题吗?
    • 在简单的情况下,例如添加属性,自动迁移通常会起作用。但是,有一个完整的迁移子 API,无论多么复杂,您都可以控制整个迁移。自动迁移处理大多数情况。 Apple Docs 解释了它处理什么,不处理什么。
    猜你喜欢
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2013-12-03
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 2010-10-18
    相关资源
    最近更新 更多