【问题标题】:When syncing Core Data, is a call to URLForUbiquityContainerIdentifier: needed?同步核心数据时,是否需要调用 URLForUbiquityContainerIdentifier: ?
【发布时间】:2014-05-01 17:21:21
【问题描述】:

我有一个将 Core Data 同步到 iCloud 的应用程序。无论我是否致电URLForUbiquityContainerIdentifier:,它似乎都运行良好。

在所有情况下都需要调用URLForUbiquityContainerIdentifier: 吗? (如果没用,这将有助于我不要调用它)。

Tom 要求的更多细节:

我没有对 URLForUbiquityContainerIdentifier: 的结果做任何事情:(这是默认应用程序容器的 URL,我用“nil”作为参数调用)。我只是关注Apple's documentation 声明

虽然 ubiquityIdentityToken 方法会告诉您用户是否是 登录到 iCloud 帐户,它不会准备 iCloud 供以下用户使用 你的应用程序。在 iOS 中,通过调用使您的无处不在的容器可用 NSFileManager 方法 URLForUbiquityContainerIdentifier: 对于每个 应用程序的普遍容器。

所以这正是我所做的。

但如果我不这样做,我看不到对 Core Data 同步的任何影响(很明显,如果我不这样做,Core Data 仍然可以很好地同步 - 或者至少看起来如此)。

所以我想知道其他人的经验。如果不需要该调用(例如,因为 Core Data 可能自己管理自己的容器),那么最好忘记它。由于它必须从后台线程中完成,这会导致大量代码徒劳无功。

【问题讨论】:

  • 如果您的问题包括您如何调用此方法以及您对结果做了什么(如果有的话),那就太好了。

标签: ios core-data icloud


【解决方案1】:

您引用的文档对于 iOS 7 已过时,其中包括对 Core Data 的 iCloud 系统的大量内部更改。其中,当您使用options 字典中的 iCloud 键调用addPersistentStoreWithType:configuration:URL:options:error: 时,它会在内部为您调用URLForUbiquityContainerIdentifier:。因此,如果您仅将 iCloud 与 Core Data 一起使用,则通常不需要自己调用此方法。

如果您仍然支持 iOS 6(如果您还使用 iCloud,则不推荐),那么您需要自己致电 URLForUbiquityContainerIdentifier:

有关 iOS 7 中 Core Data + iCloud 更改的更多详细信息,我推荐 WWDC 2013 会议 207,“Core Data 中的新功能”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-13
    • 2010-10-18
    • 2012-04-17
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多