如果我使用带有IN运算符的谓词来使用核心数据获取结果:
NSPredicate *inPredicate = [NSPredicate predicateWithFormat: @"attribute IN %@", aCollection];
并且该属性具有唯一值,是否正确假设返回结果的顺序与集合中值的顺序相对应,或者我之后需要对它们进行排序?
答案 0 :(得分:0)
您需要使用NSSortDescriptor
对其进行排序。
如果要按IN集合的顺序排序,请遵循Core Data (SQLite backed) custom sorting of strings中描述的模式,但添加Integer属性而不是Boolean,并使Integer值对应于集合的索引。然后创建一个NSSortDescriptor
以按此自定义属性排序。
如果需要更复杂的排序,可以将CoreData放在一边,并使用[NSArray sortedArrayUsingComparator:]
对fetchedObjects数组进行排序。