gpt4 book ai didi

ios - Cloudkit CKRecordZoneNotification 如何知道是否发生了添加或修改

转载 作者:行者123 更新时间:2023-11-29 01:46:43 25 4
gpt4 key购买 nike

我正在尝试使用本地缓存 (CoreData) 实现 Cloudkit 同步。

到目前为止,我设法定义了 recordZone 并获得了相关通知。在下一步中,我使用 CKFetchRecordChangesOperation 检查发生了什么。

  • recordChangedBlock(即根据 Apple 的说法:...对于区域中自上次提取请求以来更改的每条记录...)我确实获得了相关记录,但我如何知道这条记录是被添加还是被修改(不检查我的本地缓存)?

  • recordWithIDWasDeletedBlock 我得到了 recordId,但我如何知道它在我的本地缓存中是哪条记录?我可以考虑将 recordId 存储在本地缓存中,以便为此类情况提供引用,但我不敢相信这是我应该做的......

非常感谢任何建议

最佳答案

recordChangedBlock 中没有任何信息告诉您它是添加还是更改。请记住,即使有,您仍然必须检查本地商店中是否存在该记录。一条记录可以添加到 CloudKit 中,然后在您的应用程序未运行时多次更改。当您的应用程序最终运行时,它只会收到最后的更改通知。但是您的本地缓存中尚不存在该记录。因此,您必须始终查看本地是否有记录,并相应地添加/更新。

通过删除,您得到的只是 CloudKit 记录 ID。没有其他的。我所做的是确保 CloudKit 记录 ID 基于本地 key 。这样当数据从Cloudkit中移除时,我可以很容易地找到并移除本地记录。这也意味着所有用户设备上的 CloudKit 数据的本地副本最终都具有相同的 key 。

关于ios - Cloudkit CKRecordZoneNotification 如何知道是否发生了添加或修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31833057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com