3

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

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

4

2 回答 2

0

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

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

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

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

于 2015-01-01T09:40:35.840 回答
-2

尝试只使用 iCloud 商店是愚蠢的。数据必须同时存储在本地和 iCloud 中,否则您将遇到严重问题。

如果您需要核心数据,请使用MagicalRecord 。

于 2014-11-28T13:53:08.783 回答