设置:我有一个使用iCloud +核心数据的应用。它包含一个打开/关闭iCloud的开关,当发生这种情况时,数据将迁移到本地/ iCloud存储区。
问题: iCloud on。添加Core Data对象。切换到本地。切换回iCloud。现在有两个相同的对象。
我想发生什么:我假设这是预期的,并且当我将本地商店迁移到iCloud商店时我需要重复删除(如果我是这不是预期的)。我无法弄清楚去除重复的正常方法在哪里或如何。在我的代码中,我应该执行重复数据删除,以及代码应该是什么样的?
答案 0 :(得分:5)
您通常会在收到NSPersistentStoreDidImportUbiquitousContentChangesNotification
通知时对数据进行重复数据删除,并且已将更改合并到您的上下文中。合并后,浏览数据并重复数据删除。
以下是有关重复数据删除的优秀教程:http://www.atomicbird.com/blog/icloud-complications-part-2
在我看来,重复数据删除是Core Data + iCloud较差的设计方面之一。其他同步解决方案(如Wasabi Sync和Ensembles)允许您提供全局标识符作为重复数据删除的替代方法。我觉得它更清洁。 (披露:我是Ensembles的开发者。)