2013-01-02 19 views
1

我有一个Core Data对象,如下所示。从阵列中不存在的核心数据中删除对象

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

而且我保存了这些DummyObject的1000个。我也有一个数组objectArray,其中包含100个这些DummyObject s。

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

+2

您可以尝试像下面这样的谓词来获取请求:NSPredicate * predicate = [NSPredicate predicateWithFormat:@“NOT(self IN%@)”,yourArray];'让我知道这是否有效。 –

回答

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是通过您的提取请求检索到的对象的阵列。

+0

谢谢你,帮助了很多:) – Soni

+0

所以这个答案说你需要一个唯一的ID:https://stackoverflow.com/a/24495150/826435。所以我不是100%确定这个答案是否有效。 – kgaidis

相关问题