【发布时间】:2018-01-13 07:42:44
【问题描述】:
我正在构建一个类似于 Apple 的 Notes 应用程序的简单应用程序,我的应用程序使用 CoreData 和 CloudKit。 目前,我遇到了一些与 CloudKit 的网络可用性相关的问题。
当网络可用时,一切顺利,CoreData 保存笔记,CloudKit 也使用 CKModifyRecordsOperation。但是,当网络不存在时,应用程序会以某种方式保持离线时发送的操作,并在应用程序上线时将它们推送到云端。但是,它只在我创建另一个操作并添加到队列时才会这样做,当应用程序变为活动时它不会自动执行(我将应用程序从后台带到活动模式并等待 5 分钟,什么也没发生。只有当我排队另一个操作,然后所有待处理的操作也被发送)
我的问题是,如何在不创建另一个操作的情况下触发应用发送所有待处理的操作?
当然,如果用户没有杀死应用程序(双主页按钮然后滑动离开),上述情况是可能的。如何处理这种情况?当离线时创建的记录很少,然后应用程序被杀死。
我想标记 CoreData 中成功同步的每条记录,然后每次应用启动时,检查未同步的记录并同步它们。
这是正确的方法吗?还是 Apple 已经有更好的方法来处理这个问题,但我仍然找不到?
【问题讨论】: