我有一个Core Data对象,如下所示。从阵列中不存在的核心数据中删除对象
DummyObject
{
objectID:<objectID>
objectName:<objectName>
}
而且我保存了这些DummyObject
的1000个。我也有一个数组objectArray
,其中包含100个这些DummyObject
s。
我想运行一个查询,它将删除不在此数组中的所有DummyObject
。
我有一个Core Data对象,如下所示。从阵列中不存在的核心数据中删除对象
DummyObject
{
objectID:<objectID>
objectName:<objectName>
}
而且我保存了这些DummyObject
的1000个。我也有一个数组objectArray
,其中包含100个这些DummyObject
s。
我想运行一个查询,它将删除不在此数组中的所有DummyObject
。
从我的评论
你可以只尝试像你提取请求
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 * predicate = [NSPredicate predicateWithFormat:@“NOT(self IN%@)”,yourArray];'让我知道这是否有效。 –