我目前正在做一个项目,使用CoreData
来快速保存数据,为了同步我想使用iCloud,我首先想到的是CoreData iCloud
实现,但由于它现在被标记为已弃用,我开始使用 CloudKit
,一切正常,直到我尝试在建立互联网连接后备份信息(在应更新信息时出现故障),该应用程序不存储文件,仅存储数据,所有 CKRecords
都工作正常。
我的问题是:
- 申请终止后能同步信息吗?
CloudKit
是否连接到自动 iCloud 同步,即当设备插入并连接到互联网时发生的同步。
当前结构是:
CoreData
用于数据本地保存和提取,CloudKit
用于云端同步。
到目前为止,我的理解是: CloudKit
不直接与 CoreData
交互,所有涉及数据同步的操作都必须通过 Api 调用来完成.
感谢您的帮助,如果我忘记了什么,请告诉我。
最佳答案
1) 当您的应用程序终止时,它没有运行,因此您无法同步任何内容。您将需要重新启动您的应用程序(可能进入后台?),但是在没有用户干预的情况下您可以做些什么来实现这一点有一些严重的限制。这里有几个线程可能会提供更多信息:Launch app in background automatically?和 Will iOS launch my app into the background if it was force-quit by the user?
2) 开箱即用的 CloudKit 不会“自动”执行任何操作,它会执行您告诉它执行的操作。您需要将其设置为在您的代码中的适当时间(当某些内容发生变化时)触发,并响应来自其他设备的更改推送通知。
关于swift - CloudKit自动后台备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55334479/