iphone - Coredata iPhone 到 iPad/Mac 是否支持 iCloud?

标签 iphone objective-c cocoa core-data icloud

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

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

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

如果没有:是否有其他替代方法可以通过 iPad 应用程序访问 iPhone 应用程序创建的核心数据?

最佳答案

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

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

如果您在添加 iCloud 时有现有数据,则需要将数据迁移到新的数据存储,以强制对这些现有记录进行事务处理。您可以使用 NSPersistentStoreCoordinator 的 migratePersistentStore:toURL:options:withType:error: 方法相当轻松地完成此操作。这并不难,但并不总是明显有必要。

首先,我建议在 iCloud 上观看 Apple 的 WWDC 视频,尤其是 WWDC 2012 的 session 227,将 iCloud 与 Core Data 结合使用。接下来,我建议极度谨慎,因为截至今天,Core Data 的 iCloud 支持仍然远不是最可靠的 Apple API。

关于iphone - Coredata iPhone 到 iPad/Mac 是否支持 iCloud?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14303804/

相关文章:

iphone - 花栗鼠碰撞检测

iphone - 如何将通用 iOS 应用程序转换为独立的 iPhone 应用程序?

objective-c - @synthesize variable = t_variable 到底有什么作用?是不是很有帮助?

objective-c - 注册一个在程序退出前调用的函数

objective-c - 强制 NSLayoutManager 绘制不同字体的字形

iphone - 如何在 Xcode 中一次在多个目的地上 'Build & Run'?

iphone - 如何使用zxing库获取扫描的条码类型?

ios - iPhone 6s 没有接收到 UIButtons 上的任何触摸

ios - 如何检查 NSMutableArray 中的状态

cocoa - 使文档窗口居中