我有一个库式iCloud +核心数据设置。我正在处理的应用程序包含位于登录屏幕后面的用户数据。用户登录后,将实例化持久性存储协调器,并将iCloud存储添加到其中。
这是我的用例和问题:
1)开始使用应用程序,数据存储到iCloud 2)删除应用程序 3)再次构建到设备,登录到应用程序,期望调用事务日志并在本地存储中重新创建数据。 4)当使用慢速连接时,我在调试日志中出现错误,说明文件下载失败多次... 5)应用程序为空,现在看起来好像备份恢复失败了。
我的配置确实正确,并且在下降连接上100%工作。
有没有办法强制iCloud立即重试下载这些文件?在允许用户进入应用程序之前,我是否可以使用回调来确保成功下载这些文件?
任何建议将不胜感激!感谢。
答案 0 :(得分:1)
iCloud是一项尚处于起步阶段的技术,尤其是与Core Data的集成。
iCloud决定将内容推送到设备的时间间隔是不可预测的,不幸的是,此时强制iCloud无法检索数据。在Apple Developer论坛的某个地方,它表示当iCloud内容无法下载时,它将在稍后再试。
现在还没有可以使用的回叫,您的应用程序需要(如果可能)足够智能,以便知道何时下载了正确的内容。根据您需要的内容量,您可以通过查看通知中的数据来执行一些清单:NSPersistentStoreDidUpdateUbiquitousContentChangesNotification
(如果有),并检查userInfo字典中是否插入(或更新,删除)行。
我已经能够在应用程序中执行类似的操作,当您的情况发生时,为用户加载本地存储,然后将存储迁移到无处不在的存储。
这些只是一些建议,您的情况可能会有很大差异。希望这至少在某种程度上有所帮助。