ios - 使用 iCloud 同步复制 CoreData 记录

标签 ios objective-c core-data icloud

当核心数据与 iCloud 同步时,有时我的所有记录都会翻倍。我相信这会发生在重新安装时,应用程序尚未同步数据,创建新数据集,然后 iCloud 同步并且每个模型的每条记录都有两倍。

有没有办法防止这种行为?现在我正在检查每个模型的负载和数据同步是否有重复,但这看起来很乱而且很老套。

最佳答案

iCloud 以异步方式在设备之间传输数据,在您将数据添加到 iCloud 容器与实际传输数据之间可能会有相当长的时间。元数据在设备之间的传输速度更快,但即使这样也可能会延迟很长时间。

这一点之所以重要,是因为您永远无法在一台设备上进行测试来保证数据尚未添加到 iCloud。一台设备可能已经播种数据,但尚未开始上传其文件/元数据。届时,第二个设备无法知道来自第一个设备的种子数据。

Apple 的建议是通过在每次合并后对数据进行去重复处理来处理此问题。每个设备只是添加自己的种子数据,如果发现添加了两次,则删除一半,注意确保每个设备上都删除了相应的对象。

这种方法有效,但感觉有点像 hack。在我的 Ensembles 中使用的替代方案框架,是为您的对象提供全局标识符,以便同步框架可以自动导入和合并种子数据。这就是 Ensembles 中采用的方法,它使播种数据变得更加容易,也减少了临时性。

关于ios - 使用 iCloud 同步复制 CoreData 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19847829/

相关文章:

ios - 我怎样才能简单地将 View 转换为 SwiftUI View ?

javascript - Google Analytics 中的 iOS 电话超链接 javascript 跟踪

ios - 在iOS中使用核心数据映射业务对象

iphone - 使用 Core Data 和 NSManagedObject 保存列表

android - 麦克风输入属性

ios - 将 Objective-C Cocoapod 添加到 Swift

ios - AppIRATER setsignificantevent iOS

ios - 找不到接口(interface)声明和尝试使用转发类错误

ios - 在 UITableView 中显示文件的 NSArray - iOS 5

ios - 使用 Core Data 在表格 View 中编辑行位置