Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios &引用;在;NSPredicate在对象数组中进行搜索的位置_Ios_Objective C_Core Data_Restkit_Nspredicate - Fatal编程技术网

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与正在获取的模型对象属于同一类