从 CloudKit 公共核心数据存储中删除记录
2023-09-11 14:18:47 时间
问题
当您尝试使用仪表板或其他同步设备从 CloudKit 的公共数据库中删除记录时,您会遇到问题,即某些设备不会反映更改。删除的记录仍将包含在设备的核心数据存储中,该存储应与 CloudKit 同步,这是为什么呢?
这不是错误。这是多个设备在公共 CloudKit 数据库中协同工作的方式。在私有 CloudKit 同步核心数据存储中,记录会立即在所有设备上删除,为什么这在公共数据库中有所不同?
私有数据库
如果在一台设备上的私有存储中删除了一条记录,则此更改将导出到 CloudKit 中的私有数据库,并会留下一个墓碑。此逻辑删除包含记录 ID 和记录类型,因此您可以知道用户在设备上删除了哪条记录。当另一个设备从数据库导入此更改时,将使用CKFetchRecordZoneChangesOperation获取此墓碑。获取后,记录在另一台设备上被删除。最终,所有设备都拥有相同的云端状态。
公共数据库
在公共数据库中,当设备上的记录被删除并将更改导出到云端时,云端中的记录将立即被删除。现在另一台设备使用CKQueryOperation从云中获取,但之前删除的记录已不再包含在云中,因此没有任何新内容可以导入。现在,不同设备上的云中存在不同的状态,这是一个问题。
解决方案
您可以识别一条记录是否包含在公共数据库中,以确定您是否应该删除它或保留它。NSPersistentCloudKitCont
相关文章
- SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法
- Python数据存储:pickle模块的使用讲解(测试代码)
- 利用php的序列化和反序列化来做简单的数据本地存储
- Google Earth Engine(GEE)——导出数据到Google硬盘和云端存储!和最大像素限制导出
- react-native-storage + AsyncStorage 实现数据存储
- 海量存储系列之四
- Hive-ORC文件存储格式
- Spring Cloud Alibaba基础教程:Sentinel使用Nacos存储规则
- 《PHP和MySQL Web开发从新手到高手(第5版)》一2.9 删除存储的数据
- 《大数据存储:MongoDB实战指南》一1.10 小结
- iOS开发 - OC - 实现本地数据存储的几种方式二(直接使用sqlite)
- 06-数据存储、安全认证与控制台
- SwiftUI 章节类数据如何存储 List显示自定义排序(字典dictionary 遍历)
- Qt音视频开发19-海康sdk录像存储
- MySQL 基于存储过程 实现数据统计按日、周、月份统计模板
- 光存储应对冷数据存储挑战
- 云空间服务,助力用户数据存储与协同
- Spark向HDFS中存储数据
- 关于数据存储需要知道的几项技术
- TuShare(2):使用TuShare,抓取股票数据并存储到数据库
- tinkerpop(2) 使用java调用tinkerpop,存储到derby数据库
- MySQL 存储过程入门 (一)
- 学习存储过程(1)