核心数据选择一个fetchRequest中的第一个和最后一个记录

时间:2012-02-08 22:50:09

标签: objective-c cocoa-touch cocoa core-data nspredicate

我在iphone上的Core Data中的实体中有一个项目列表,它们都有一个item_id整数属性。我需要使用一个获取请求返回表中最高编号的item_id和编号最小的item_id。我不知道这些数字可能是什么,因为它们不是从0开始上升。

实现这一目标的最佳方法是什么?同样,我知道我可以通过2个单独的获取请求来完成它,有没有办法只使用一个?

1 个答案:

答案 0 :(得分:3)

只有一次获取,这是一个棘手的问题。我会使用MAX和MIN函数/表达式进行两次提取。 e.g。

NSExpression *minExpression = [NSExpression expressionForFunction:@”min:”
arguments:[NSArray arrayWithObject:keyPathExpression]];

如果您必须在ONE fetch中执行此操作,那么我只能考虑执行fetchAll并按ID排序,然后获取第一个和最后一个:

[objects objectAtIndex:0]
[objects lastObject] 

更新1: 看起来这个家伙有一个解决方案: http://useyourloaf.com/blog/2012/1/19/core-data-queries-using-expressions.html