我正在尝试为Feed阅读应用程序构建一个缓存系统。这个想法是每次成功提取新的Feed,删除Core Data中的所有存储实体,并存储Feed的前20项(这用作离线缓存)。
我遇到的问题是,当执行pull to refresh时,我的托管对象上下文可能包含数百个项目。我想将这些项目保留在上下文中,同时从Core Data中删除任何存储的项目,然后存储刷新调用返回的20个项目。
为了它的价值,我正在使用魔法记录。我已经尝试过寻找这个解决方案,但要么我使用了错误的关键字,要么很难找到信息。
我不确定要准确显示哪些代码,但这里是Feed调用的处理:
for (id dict in feedArray){
WFeedItem *item = [WFeedItem feedItemWithAttributes:[dict dictionaryByReplacingNullsWithBlanks] inManagedObjectContext:[NSManagedObjectContext defaultContext]];
[parsedArray addObject:item];
}
这会从它定义的子类HTTPClient传递回调用它的视图控制器。请记住,这一切都很好,这一切都是删除存储的项目,同时保留我在本次会话期间收集的所有内容。
谢谢,
布兰登
答案 0 :(得分:0)
只需使用不同的上下文来导入和存储新记录。您的原始对象上下文可以保持原样。