iphone - 核心数据 iCloud 合并协议(protocol)

标签 iphone core-data icloud

我已成功让现有的核心数据应用程序能够与 iCloud 配合使用。经过几天的研究,发现其实出奇的简单。看来有三件事是必不可少的:

  • 添加权利文件(在最近的 Xcode 中,可以通过选择目标、选择“摘要 Pane ”、向下滚动、选中启用权利来完成此操作)

  • 在添加持久存储时添加正确的选项,就我而言

    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
        // other options
        @"<arbitrary name>", NSPersistentStoreUbiquitousContentNameKey,
        iCloudURL, NSPersistentStoreUbiquitousContentURLKey,
        nil]
    

    哪里

    NSURL * iCloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
    

此处的“nil”表示使用 Entitlements.plist 文件中的信息。

  • 通过开发者门户为应用启用 iCloud 支持。这可能涉及生成一个唯一的应用程序 ID,这是我以前没有做过的事情。

实际上,目前我不确定这最后一步对于开发是否至关重要——我已经启用了另一个应用程序,而没有这最后一步,它似乎可以工作。

无论如何,我注意到不同iDevices上同一应用程序的两个现有核心数据库会将新条目同步到核心数据堆栈,但不会自动同步现有记录。

将数据从设备 A 同步到 B 的一种方法是删除 B 上现有的核心数据数据库,然后在 B 上重新启动应用程序。但这不是正确的合并。

有谁知道在应用程序升级到使用 iCloud 支持时合并不同应用程序上的两个现有核心数据数据库的方法,即使用上述选项等等?

谢谢

最佳答案

也许这有帮助:https://gist.github.com/1475162 (作者:@steipete)

关于iphone - 核心数据 iCloud 合并协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8893941/

相关文章:

iphone - IOS 5 SDK 中的 Storyboard 但也针对 IOS 4/3?

ios - 我是否需要手动记录数据以记录核心数据随时间的变化?

android - android(getCacheDir())中的缓存文件夹在功能上等同于iOS(NSCachesDirectory)中的缓存文件夹吗?

ios - 是否可以使用 iCloud 将用户注册或登录到应用程序?

iphone - 如何在 iOS 设备上启用开发人员模式而不使用 Xcode 6 向其部署应用程序?

iOS自定义形状导航栏

iphone - 更改 UITableView 的 contentInset 而不更改其 contentOffset?

swift - 在 cellForRowAt 中显示正确的信息

ios - Core Data 中如何有效处理大数据集?

python - 获取 icloud 网络服务端点以获取数据