核心数据:在coredata中插入数据时如何避免重复

时间:2013-06-11 19:03:14

标签: ios core-data nsfetchedresultscontroller afincrementalstore

我正在使用核心数据并为我的模型设置了NSManagedObjectContext子类。

viewDidLoad

  1. 我正在尝试从核心数据中获取。

  2. 同时启动网络调用,成功后会将模型对象保存到核心数据,然后再次获取以更新UI。

  3. 我遇到的问题是每个viewDidLoad我一次又一次添加数据意味着如果我有来自n / w调用的4个结果,如果我已加载,我将有2组相同的4个结果第二次看法等等。

    我通过在保存网络提取结果之前手动检查复制来避免这种情况。

    我认为这不是一个干净的方法,我也希望NSFetchedResultsController使用UICollectionView来提高获取效率。

    使用NSFetchedResultsController无论如何都可以帮助避免这个问题吗?

    还有没有人为核心数据尝试 AFIncrementalStore SSDataKit 包装器?关于哪一个会更好的任何建议?

1 个答案:

答案 0 :(得分:0)

如果您可以使用它,RestKit将为您完成。但它基本上做同样的事情。它提供了一些缓存选项,可以快速进行复制检查,但仍需要在某处进行检查。

我不确定您认为FRC如何帮助进行重复检查。使用获取请求来获取仅包含适当标识属性的字典结果,但不是完整的FRC。

核心数据本身没有“重复”的概念。有关建议,请参阅Apple文档部分“有效实施查找或创建”here