Ios 从核心数据中删除不包含';不存在于数组中

Ios 从核心数据中删除不包含';不存在于数组中,ios,core-data,Ios,Core Data,我有一个如下所示的核心数据对象 DummyObject { objectID:<objectID> objectName:<objectName> } DummyObject { 目标: 对象名称: } 我保存了1000个DummyObjects。我还有一个数组objectArray,其中包含100个DummyObjects 我想运行一个查询,删除所有不在此数组中的DummyObjects。 对于获取请求,您可以尝试如下谓词 NSPredicate *pre

我有一个如下所示的核心数据对象

DummyObject
{
  objectID:<objectID>
  objectName:<objectName> 
}
DummyObject
{
目标:
对象名称:
}
我保存了1000个
DummyObject
s。我还有一个数组
objectArray
,其中包含100个
DummyObject
s

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


对于获取请求,您可以尝试如下谓词

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
是获取请求检索到的对象数组。

您可以对获取请求尝试如下谓词
NSPredicate*谓词=[NSPredicate predicateWithFormat:@“NOT(self IN%@)”,yourArray]让我知道这是否有效。所以这个答案说你需要一个唯一的id:。所以我不能100%确定这个答案是否有效。