我使用核心数据,并有一个NSManagedObjectContext
子类为我的模型。
On viewDidLoad
:
-
我正在尝试从核心数据获取
-
同时启动一个网络调用,如果成功,将模型对象保存到核心数据中,并再次获取以更新UI。
我面临的问题是在每个viewDidLoad
上,我一次又一次地添加数据,这意味着如果我从n/w调用中获得4个结果,如果我第二次加载视图,我将有2组相同的4个结果,等等。
我通过在保存网络获取的结果之前手动检查重复来避免这种情况。
我不认为这是一个干净的方法,我也想用NSFetchedResultsController
UICollectionView
,使获取更有效。
使用NSFetchedResultsController
是否有助于避免这个问题?
也有人尝试过AFIncrementalStore或SSDataKit核心数据包装?有人建议哪个更好吗?
如果您可以使用它,RestKit将为您完成。但基本上是一样的。它提供了一些缓存选项来快速进行重复检查,但仍然需要在某个地方进行检查。
我不确定你认为FRC如何帮助重复检查。使用fetch请求来获取只包含适当标识属性的字典结果,而不是完整的FRC。
Core Data本身没有"副本"的概念。请参阅Apple文档"高效地实现查找或创建"章节获取建议。