如何仅从Core Data中删除保存到存储的实体?

时间:2013-05-30 15:05:15

标签: iphone ios core-data magicalrecord

我正在尝试为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传递回调用它的视图控制器。请记住,这一切都很好,这一切都是删除存储的项目,同时保留我在本次会话期间收集的所有内容。

谢谢,

布兰登

1 个答案:

答案 0 :(得分:0)

只需使用不同的上下文来导入和存储新记录。您的原始对象上下文可以保持原样。