使用 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 中最可靠的。