我目前正在一个项目中,该项目使用CoreData
快速保存数据,并且出于同步目的,我想使用iCloud,而我想到的第一件事就是在CoreData iCloud
上实现,但是由于它现在已被标记为已弃用,因此我开始使用CloudKit
,并且一切正常,直到在建立Internet连接后尝试对信息进行备份(如果失败,应更新信息) ,该应用程序不存储文件,仅存储数据,所有CKRecords
都可以正常工作。
我的问题是:
CloudKit
是否连接到自动iCloud同步,即设备插入电源并连接到互联网时发生的自动同步。 当前结构为:
CoreData
用于本地保存和提取数据,CloudKit
用于云同步。
到目前为止,我了解到:CloudKit
不能直接与CoreData
进行交互,并且所有涉及数据同步的操作都必须通过Api调用来完成。
谢谢您的帮助,如果我忘记了什么,请告诉我。
答案 0 :(得分:0)
1)当您的应用终止时,它没有运行,因此您无法同步任何内容。您可能需要重新启动您的应用程序(可能是在后台启动?),但是在没有用户干预的情况下您可以做些什么却受到一些严重限制。以下是一些可能更清楚的线索:Launch app in background automatically?和Will iOS launch my app into the background if it was force-quit by the user?
2)开箱即用,CloudKit不会“自动”执行任何操作,而是按照您的指示执行操作。您需要将其设置为在代码中的适当时间(发生更改时)触发,并响应来自其他设备的更改的推送通知。