从Core Data中删除数组中不存在的对象

时间:2013-01-02 05:27:31

标签: ios core-data

我有一个Core Data对象,如下所示。

DummyObject
{
  objectID:<objectID>
  objectName:<objectName> 
}

我已经保存了1000个DummyObject。我还有一个数组objectArray,其中包含100个DummyObject s。

我想运行一个查询,删除所有不在此数组中的DummyObject

1 个答案:

答案 0 :(得分:3)

从我的评论中

您可以尝试使用以下谓词作为获取请求

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (self IN %@)", yourArray];

将它与NSFetchRequest一起使用可以检索不在数组中的对象。

显然,yourArray包含DummyObject类型的对象。

要删除,

// fetch request with predicate...
NSArray* results = // execute the fetch request

for(NSManagedObject* dummy in results) {
   [context deleteObject:dummy];
}

// save here...

其中results是获取请求检索的对象数组。