我在iphone上的Core Data中的实体中有一个项目列表,它们都有一个item_id整数属性。我需要使用一个获取请求返回表中最高编号的item_id和编号最小的item_id。我不知道这些数字可能是什么,因为它们不是从0开始上升。
实现这一目标的最佳方法是什么?同样,我知道我可以通过2个单独的获取请求来完成它,有没有办法只使用一个?
答案 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