Ios 在核心数据中使用带聚合运算符的谓词
如果要使用带IN运算符的谓词来获取使用核心数据的结果:Ios 在核心数据中使用带聚合运算符的谓词,ios,core-data,nspredicate,Ios,Core Data,Nspredicate,如果要使用带IN运算符的谓词来获取使用核心数据的结果: NSPredicate *inPredicate = [NSPredicate predicateWithFormat: @"attribute IN %@", aCollection]; 并且该属性具有唯一的值,是否可以假定返回结果的顺序与集合中值的顺序相对应,或者我需要在之后对其进行排序?您需要使用nssortddescriptor对其进行排序 如果要按集合中的顺序排序,请按照中所述的模式进行排序,但要添加整数属性而不是布尔值,并使整
NSPredicate *inPredicate = [NSPredicate predicateWithFormat: @"attribute IN %@", aCollection];
并且该属性具有唯一的值,是否可以假定返回结果的顺序与集合中值的顺序相对应,或者我需要在之后对其进行排序?您需要使用
nssortddescriptor
对其进行排序
如果要按集合中的顺序排序,请按照中所述的模式进行排序,但要添加整数属性而不是布尔值,并使整数值与集合的索引相对应。然后创建一个NSSortDescriptor
,按此自定义属性排序
如果需要更复杂的排序,您可以将CoreData放在一边,并使用
[NSArray sortedArrayUsingComparator:
对获取的对象数组进行排序。是否可以制作一个排序描述符,根据in语句中使用的集合顺序进行排序?请检查。通过向NSManagedObject添加自定义属性,使其成为一个整数,其值与排序规则相对应(即集合中的第一个=1,集合中的第二个=2)。但我有多个具有不同顺序的集合,因此它不是可以分配给NSManagedObject的单一属性。编辑答案,这个自定义属性概念应该会让您更接近。如果有多个集合,可能需要多个整数属性来进行排序。您还可以通过在FetchedObject数组上编写自己的排序例程,在CoreData之外进行排序。