使用 CloudKit 的增量同步 -> 如何获得有关已删除记录的通知
Incremental Sync using CloudKit -> How to get notified about deleted records
在我的应用程序中,我想在我的设备之间同步数据。我可以通过询问 modificationDate
大于某物的实体来获得更改......这样我就可以获得自给定日期以来的所有新实体和修饰符实体。
到目前为止一切顺利。
现在用户也可以删除实体。使用 CloudKit
获取这些记录 ID 的最佳方法是什么?有什么办法吗?有没有办法查询自给定日期后删除的记录 ID?
或者我只能使用软删除来存档吗?!?
您可以通过 CloudKit 订阅获取有关数据更改的信息 API
如果要存储所有项目的本地缓存,请使用 CKFetchRecordChangesOperation。
此功能实际上是为 "when you maintain a local cache of your record data and need to synchronize that cache periodically with the server" 构建的,并提供更改的记录和删除的记录 ID。
但是请注意,它只适用于非默认区域,这意味着它不会工作:
- 在 public 数据库中(不支持自定义区域)
- 在私有数据库的默认区域中
您需要使用 CKModifyRecordZonesOperation 在私有数据库中创建自定义区域。
如果您要存储用户的私人数据,这是可行的方法。
在我的应用程序中,我想在我的设备之间同步数据。我可以通过询问 modificationDate
大于某物的实体来获得更改......这样我就可以获得自给定日期以来的所有新实体和修饰符实体。
到目前为止一切顺利。
现在用户也可以删除实体。使用 CloudKit
获取这些记录 ID 的最佳方法是什么?有什么办法吗?有没有办法查询自给定日期后删除的记录 ID?
或者我只能使用软删除来存档吗?!?
您可以通过 CloudKit 订阅获取有关数据更改的信息 API
如果要存储所有项目的本地缓存,请使用 CKFetchRecordChangesOperation。
此功能实际上是为 "when you maintain a local cache of your record data and need to synchronize that cache periodically with the server" 构建的,并提供更改的记录和删除的记录 ID。
但是请注意,它只适用于非默认区域,这意味着它不会工作:
- 在 public 数据库中(不支持自定义区域)
- 在私有数据库的默认区域中
您需要使用 CKModifyRecordZonesOperation 在私有数据库中创建自定义区域。
如果您要存储用户的私人数据,这是可行的方法。