Core data 正在检查iCloud中的现有内容

Core data 正在检查iCloud中的现有内容,core-data,icloud,Core Data,Icloud,检查iCloud现有数据的最佳方法是什么 我需要检查本地设备或iCloud上是否不存在数据,以便下载。由于您包含了核心数据标签,我假设您的意思是您使用的是核心数据,而不是iCloud文件API或无处不在的键值存储 有了Core Data的内置iCloud支持,您可以像不使用iCloud一样检查现有数据。创建核心数据堆栈后,通过正常的核心数据获取来检查存在哪些数据。没有(公开的)本地与云数据的概念,只有一个数据存储碰巧知道如何与iCloud通信。您不会显式地启动下载--下载是自动进行的 在应用程

检查iCloud现有数据的最佳方法是什么


我需要检查本地设备或iCloud上是否不存在数据,以便下载。

由于您包含了
核心数据标签,我假设您的意思是您使用的是核心数据,而不是iCloud文件API或无处不在的键值存储

有了Core Data的内置iCloud支持,您可以像不使用iCloud一样检查现有数据。创建核心数据堆栈后,通过正常的核心数据获取来检查存在哪些数据。没有(公开的)本地与云数据的概念,只有一个数据存储碰巧知道如何与iCloud通信。您不会显式地启动下载--下载是自动进行的

  • 在应用程序启动时,当您调用
    addPersistentStoreWithType:configuration:URL:options:error:
    时,Core Data会在内部启动下载本地尚不可用的任何数据。因此,此方法可能会阻塞一段时间。如果它成功返回,则可以假定所有当前下载都已完成

  • 如果在应用程序运行时出现新的更改,核心数据将下载并导入这些更改,完成后,将发布
    nsPersistentStoreDidImportUbitubitousContentChangesNotification
    ,告诉您刚才发生了什么


这些都描述了核心数据的iCloud应该如何工作。在实践中,你可能会发现它并不总是像预期的那样工作。

多亏@Tom Harrington指出,这个错误与开发人员/编码无关——它纯粹与iCloud/Apple/连接问题有关


我发现了更多相关信息。

您好,谢谢您的回答,似乎在我第一次构建应用程序的设备上是一个干净的构建(即删除icloud数据和本地数据),第一台设备是唯一在icloud中留下收据并将数据保存在那里的设备。第二个设备只是挂起尝试将持久存储添加到icloudFirst:执行干净构建对iCloud数据绝对没有影响。如果要删除它,请转到“系统首选项”将其删除,并确保其正常工作。第二:长时间阻塞试图添加持久存储是正常的(或者如果不是“正常”,至少是典型的)。等一下,看看会发生什么。是的,对不起,我的意思是像在developer.icloud.com网站上一样从icloud中删除。一段时间后,我收到一个文件安全保存失败的错误,错误:error Domain=NSCocoaErrorDomain code=512“文件上载超时”。UserInfo=0x1dd65320{nslocalizeddedescription=文件上载超时。}
并且我的两个存储中只有一个(本地数据-不受iCloud影响)被添加到持久存储文件a bug,这种无意义的错误信息是核心数据iCloud集成的典型特征。这并不意味着你做错了什么,所以这不是你能解决的问题。好吧,这不是我想要听到的答案,但不是我们的错!无论如何谢谢你的帮助