Базовые данные выбирают первую и последнюю записи в одном fetchRequest - PullRequest
1 голос
/ 09 февраля 2012

У меня есть список элементов в сущности в Core Data на iphone, все они имеют целочисленный атрибут item_id.Мне нужно вернуть item_id с наивысшим номером и item_id с наименьшим номером в таблице с one запросом на выборку.Я не знаю, какими могут быть эти цифры, поскольку они не начинаются с 0 и не повышаются.

Каков наилучший способ для достижения этой цели?Опять же, я знаю, что могу сделать это с двумя отдельными запросами на выборку, есть ли способ сделать это только с одним?

1 Ответ

3 голосов
/ 09 февраля 2012

Это сложно сделать только ОДНОЙ выборкой.Я бы сделал две выборки, используя функции и выражения MAX и MIN.например,

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

Если вам абсолютно необходимо сделать это в ОДНОМ извлечении, тогда я могу только подумать о том, чтобы выполнить fetchAll и отсортировать по идентификатору, а затем получить первое и последнее с помощью:

[objects objectAtIndex:0]
[objects lastObject] 

Обновление 1: похоже, у этого парня есть решение: http://useyourloaf.com/blog/2012/1/19/core-data-queries-using-expressions.html

...