CoreData+CloudKit iOS13 NSPersistentStoreRemoteChangeNotification

Posted

技术标签:

【中文标题】CoreData+CloudKit iOS13 NSPersistentStoreRemoteChangeNotification【英文标题】: 【发布时间】:2019-12-18 13:43:51 【问题描述】:

我正在使用CoreData+CloudKit NSPersistentCloudKitContainer自动同步数据到CloudKit

我一直在查看 Apple 提供的 Sample App,了解如何监听远程商店更改通知并阅读历史更改。在实施相同的操作后,我注意到NSPersistentStoreRemoteChangeNotification 被多次触发。在每次应用启动时,即使数据没有变化,历史记录的变化也会显示插入到所有实体中,这确实令人困惑。

您如何可靠地检查是否有实际记录添加到实体中?还有如何处理同时触发的多个通知?

【问题讨论】:

【参考方案1】:

创建NSPersistentHistoryToken 的实例以跟踪您处理的最新历史记录。在保存期间设置事务并使用NSPersistentHistoryTransaction 的谓词仅获取其他作者。

有关更多详细信息,请参阅Consuming Relevant Store Changes. 中的“跟踪您在历史上的位置”

【讨论】:

以上是关于CoreData+CloudKit iOS13 NSPersistentStoreRemoteChangeNotification的主要内容,如果未能解决你的问题,请参考以下文章

iOS swift:使用 coredata (cloudkit) 存储缓存

注册以接收远程 CloudKit 更改的通知不起作用

如何通过 Today Extension (iOS 8) 访问 Core Data/CloudKit

禁用 CloudKit 调试日志

如何解决:“keyWindow”在 iOS 13.0 中已弃用

将 iOS 应用从 Cloudkit 开发转移到生产