Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.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 在核心数据中使用带聚合运算符的谓词_Ios_Core Data_Nspredicate - Fatal编程技术网

Ios 在核心数据中使用带聚合运算符的谓词

Ios 在核心数据中使用带聚合运算符的谓词,ios,core-data,nspredicate,Ios,Core Data,Nspredicate,如果要使用带IN运算符的谓词来获取使用核心数据的结果: NSPredicate *inPredicate = [NSPredicate predicateWithFormat: @"attribute IN %@", aCollection]; 并且该属性具有唯一的值,是否可以假定返回结果的顺序与集合中值的顺序相对应,或者我需要在之后对其进行排序?您需要使用nssortddescriptor对其进行排序 如果要按集合中的顺序排序,请按照中所述的模式进行排序,但要添加整数属性而不是布尔值,并使整

如果要使用带IN运算符的谓词来获取使用核心数据的结果:

NSPredicate *inPredicate = [NSPredicate predicateWithFormat: @"attribute IN %@", aCollection];

并且该属性具有唯一的值,是否可以假定返回结果的顺序与集合中值的顺序相对应,或者我需要在之后对其进行排序?

您需要使用
nssortddescriptor
对其进行排序

如果要按集合中的顺序排序,请按照中所述的模式进行排序,但要添加整数属性而不是布尔值,并使整数值与集合的索引相对应。然后创建一个
NSSortDescriptor
,按此自定义属性排序


如果需要更复杂的排序,您可以将CoreData放在一边,并使用
[NSArray sortedArrayUsingComparator:

对获取的对象数组进行排序。是否可以制作一个排序描述符,根据in语句中使用的集合顺序进行排序?请检查。通过向NSManagedObject添加自定义属性,使其成为一个整数,其值与排序规则相对应(即集合中的第一个=1,集合中的第二个=2)。但我有多个具有不同顺序的集合,因此它不是可以分配给NSManagedObject的单一属性。编辑答案,这个自定义属性概念应该会让您更接近。如果有多个集合,可能需要多个整数属性来进行排序。您还可以通过在FetchedObject数组上编写自己的排序例程,在CoreData之外进行排序。