0

我们已经完成了使用 coredata 的 iPhone 应用程序的编写。在进一步的版本中,我们计划添加一个 iPad 应用程序,该应用程序能够显示 iPhone 应用程序收集的数据(以及修改,使用它),从而为用户提供更多交互可能性。

我的问题是:是否可以将现有的核心数据(iPhone 上已安装的应用程序)移动到云端并使用 iPad 应用程序读取该数据?

如果是的话:你能指出我从哪里开始的正确方向吗?

如果不是:是否有另一种替代方法来访问使用 iPhone 应用程序和 iPad 应用程序创建的核心数据?

4

1 回答 1

3

使用 Core Data 内置的 iCloud 支持时,您使用哪种设备并不重要,只是 Core Data 堆栈以相同的方式初始化。任何 iOS 设备或 Mac 都可以使用同一个 iCloud 存储,并且在一台设备上创建的数据可以在另一台设备上读取。

但有一个关键细节:如果您已经拥有数据存储并添加了 iCloud 支持,那么这些预先存在的记录不会自动迁移到云中。iCloud 基于事务日志工作,事务日志仅在您保存更改时创建。不会立即更改的现有数据不会生成任何事务,因此不会进入云端。

如果您在添加 iCloud 时有现有数据,则需要将数据迁移到新的数据存储以强制对这些现有记录进行事务处理。NSPersistentStoreCoordinator您可以使用'smigratePersistentStore:toURL:options:withType:error:方法相当容易地做到这一点。这并不难,但它的必要性并不总是很明显。

首先,我建议在 iCloud 上观看 Apple 的 WWDC 视频——尤其是 WWDC 2012 的第 227 节,将 iCloud 与 Core Data 结合使用。接下来,我建议格外小心,因为截至今天,Core Data 的 iCloud 支持仍然,容我们说,远非 Apple API 中最可靠的。

于 2013-01-13T22:53:08.170 回答