同步Core Data时,是否调用了URLForUbiquityContainerIdentifier:需要吗?

时间:2014-05-01 17:21:22

标签: ios core-data icloud

我有一个将Core Data同步到iCloud的应用。它似乎工作得很好,无论我是否打电话给URLForUbiquityContainerIdentifier:

在所有情况下是否需要拨打URLForUbiquityContainerIdentifier:? (如果没用的话,这会帮助我不要打电话。)

根据汤姆的要求提供更多细节:

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

  

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

所以这正是我所做的。

但如果我不这样做,我认为没有对Core Data同步有任何影响(如果我不这样做,那么Core Data仍然可以很好地同步 - 或者至少看起来如此)。

所以我想知道其他人的经历。如果不需要该调用(例如,因为Core Data可能自己管理自己的容器),那么最好忘记它。因为它必须从后台线程完成,所以这会产生很多代码。

1 个答案:

答案 0 :(得分:1)

您引用的文档已经过时,因为iOS 7包含了对Core Data的iCloud系统的大量内部更改。其中包括当您使用addPersistentStoreWithType:configuration:URL:options:error:字典中的iCloud密钥调用options时,它会在内部为您调用URLForUbiquityContainerIdentifier:。因此,如果您仅将iCloud与核心数据结合使用,则通常无需自行调用此方法。

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

有关iOS 7中Core Data + iCloud更改的更多详细信息,我建议使用WWDC 2013会话207,以及#34; Core Data中的新功能"。