Как удалить из Core Data только объекты, сохраненные для хранения?

Я пытаюсь создать систему кеширования для приложения для чтения каналов. Идея состоит в том, что каждый раз, когда новый канал успешно извлекается, удаляются все сохраненные сущности в Core Data и сохраняются первые двадцать элементов канала (это используется в качестве автономного кеша).

Проблема, с которой я сталкиваюсь, заключается в том, что в моем контексте управляемого объекта могут быть сотни элементов при выполнении запроса на обновление. Я хотел бы сохранить эти элементы в контексте при удалении любых сохраненных элементов из Core Data, а затем сохранить двадцать элементов, возвращенных из вызова обновления.

Как бы то ни было, я использую Magical Record. Я пробовал поискать это решение, но либо я использую неправильные ключевые слова, либо информацию трудно найти.

Я не уверен, какой именно код показывать, но вот обработка вызова фида:

for (id dict in feedArray){
    WFeedItem *item = [WFeedItem feedItemWithAttributes:[dict dictionaryByReplacingNullsWithBlanks] inManagedObjectContext:[NSManagedObjectContext defaultContext]];
    [parsedArray addObject:item];
}

Он передается обратно от подкласса HTTPClient, в котором он определен, контроллеру представления, который его вызвал. Имейте в виду, все это работает нормально, все дело в удалении сохраненных элементов при сохранении всего, что я собрал во время этого сеанса, в контексте.

Спасибо,

-Брэндон


person Stakenborg    schedule 30.05.2013    source источник


Ответы (1)


Просто используйте другой контекст для импорта и хранения новых записей. Ваш исходный объектный контекст может оставаться неизменным.

person Mundi    schedule 30.05.2013
comment
Могу ли я использовать другой контекст для извлечения только элементов, уже сохраненных в магазине? Проблема, с которой я сталкиваюсь при сохранении, заключается в том, что мне нужно удалить то, что уже есть, не затрагивая NSManagedObjects из сеанса. Скорее всего, некоторые из новых предметов из вызова фида уже будут существовать в магазине, но мне нужно убедиться, что в магазине всегда есть двадцать самых последних предметов ... не уверен, достаточно ли я это объясняю. - person Stakenborg; 30.05.2013
comment
Это вроде того, чем я закончил. По сути, я не хотел, чтобы один контекст видел, что было сохранено, по сути, но поскольку этого не могло произойти, я просто мои первые двадцать элементов в моем moc по умолчанию и сохранил их, а затем поместил остальные мои объекты в nil moc. - person Stakenborg; 06.06.2013