0
我正在尝试为feed阅读应用程序构建一个缓存系统。这个想法是每次成功提取新的提要,删除核心数据中的所有存储实体,并存储提要的前20项(用作脱机缓存)。如何只删除保存到核心数据存储的实体?
我遇到的问题是,当执行刷新操作时,托管对象上下文可能有数百个项目。我想将这些项目保留在上下文中,同时从Core Data中删除任何存储的项目,然后存储从刷新调用返回的二十个项目。
对于它的价值,我使用魔法记录。我试过寻找这个解决方案,但是我使用了错误的关键字或信息很难找到。
我不知道要显示什么代码完全,但这里的饲料呼叫处理:
for (id dict in feedArray){
WFeedItem *item = [WFeedItem feedItemWithAttributes:[dict dictionaryByReplacingNullsWithBlanks] inManagedObjectContext:[NSManagedObjectContext defaultContext]];
[parsedArray addObject:item];
}
这被传递从一个视图控制器子类的了HTTPClient它的定义已经把它称为回。请记住,这一切都正常工作,这都是删除存储的项目,同时保留在本次会议期间收集的所有内容。
感谢,
布兰登
我可以使用不同的上下文来检索已存储在商店中的物品吗?我在保存时遇到的问题是我需要删除已存在的内容,而不会影响会话中的NSManagedObjects。这很可能来自Feed调用的一些新项目已经存在于商店中,但我需要确保商店始终具有最近的20个项目......不确定是否我解释得很好。 – Stakenborg
这就是我最终做的事情。基本上我不希望一个上下文看到存储的内容,但基本上,但因为这不会发生,我只是我的第20个项目到我的默认moc并保存它,然后将其余的我的对象放在一个零moc。 – Stakenborg