Ios &引用;在;NSPredicate在对象数组中进行搜索的位置
我有一个名为Ios &引用;在;NSPredicate在对象数组中进行搜索的位置,ios,objective-c,core-data,restkit,nspredicate,Ios,Objective C,Core Data,Restkit,Nspredicate,我有一个名为deletedepartments的数组,其中包含名为DeletedObject的NSObjects。DeletedObject只有一个名为deletedID的字段。此数组是通过RestKit的映射生成的 现在,我想在CoreDate中搜索Department对象,这些对象的id位于deletedDepartments数组中 如果我这样做 [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"id IN %@",
deletedepartments
的数组,其中包含名为DeletedObject的NSObjects。DeletedObject只有一个名为deletedID
的字段。此数组是通过RestKit的映射生成的
现在,我想在CoreDate中搜索Department
对象,这些对象的id
位于deletedDepartments
数组中
如果我这样做
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"id IN %@", deletedDepartments ]];
这将不起作用,因为DeletedPartments不是由NSNumber组成的NSArray,而是由NSObject组成的NSArray,其中包含我要比较的NSNumber。如果不创建另一个数组(通过迭代
deletedDepartments
并仅选择deletededeD
),我如何实现这样的事情?将谓词更改为以下内容:
[NSPredicate predicateWithFormat:@"deletedID IN %@", [deletedDepartments valueForKey:@"deletedID"]]
这将创建deletedId的数组,并使用deletedId属性计算每个对象。是的,这确实会在数组中进行内部迭代以创建一个新的数组,但这是最好的方法,除非deletedepartments
中的NSObject与正在获取的模型对象属于同一类