使用带有核心数据的聚合运算符IN的谓词

时间:2012-09-10 17:41:07

标签: ios core-data nspredicate

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

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

并且该属性具有唯一值,是否正确假设返回结果的顺序与集合中值的顺序相对应,或者我之后需要对它们进行排序?

1 个答案:

答案 0 :(得分:0)

您需要使用NSSortDescriptor对其进行排序。

如果要按IN集合的顺序排序,请遵循Core Data (SQLite backed) custom sorting of strings中描述的模式,但添加Integer属性而不是Boolean,并使Integer值对应于集合的索引。然后创建一个NSSortDescriptor以按此自定义属性排序。

如果需要更复杂的排序,可以将CoreData放在一边,并使用[NSArray sortedArrayUsingComparator:]对fetchedObjects数组进行排序。