Разработка iPhone - Использование NSPredicate для получения последней добавленной записи из CoreData - PullRequest
2 голосов
/ 06 апреля 2010

Я хочу получить последнюю добавленную запись из CoreData. Мне было интересно, если это возможно с помощью NSPredicate? Если да, то как?

например. У меня есть отношения один-ко-многим между Департаментом и персоналом, и я хочу получить список сотрудников, который был нанят в последнее время. Таблица персонала имеет поле даты, которое можно использовать.

Я не хочу получать все записи персонала, а затем искать правильную. Обратите внимание, что CoreData хранит связанные записи в NSSet.

1 Ответ

5 голосов
/ 06 апреля 2010

Я не думаю, что предикат будет делать то, что вы просите здесь. Вместо этого вы можете выбрать одну запись с дескриптором сортировки, установленным для сортировки дат в порядке убывания. Вам необходимо изменить запрос на получение, включив в него следующее:

NSSortDescriptor *dateSort = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:dateSort]];
[fetchRequest setFetchLimit:1];

Это должно дать вам объект Staff с самым последним атрибутом даты. Обратите внимание, что если вы используете хранилище SQLite, то сортировка выполняется на уровне SQLite и извлекается только один результат.

...