CoreData Fetch Request с самым последним предикатом - PullRequest
0 голосов
/ 20 декабря 2009

У меня есть Entity «Событие», которое содержит атрибут NSDate с именем «AccidentDate». Я пытаюсь сделать запрос на выборку, чтобы получить только последнюю 'AccidentDate', но я не уверен, как настроить предикат, чтобы получить только последнюю 'AccidentDate'

Ниже мой код пока ...

NSFetchRequest *fetchRequest1 = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:self.managedObjectContext];

[fetchRequest1 setEntity:entity];

NSPredicate *predicate;                            //unknown code here
[fetchRequest1 setPredicate:predicate];

NSArray *items = [self.managedObjectContext executeFetchRequest:fetchRequest1 error:&error];

[fetchRequest1 release];

Любая помощь будет принята с благодарностью. Спасибо

Ответы [ 2 ]

1 голос
/ 02 января 2010

Вы можете применить массив дескрипторов сортировки непосредственно к NSFetchRequest, и вы можете дополнительно установить его предел выборки равным 1. Это создает следующий код:

NSFetchRequest *fetchRequest1 = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event"  inManagedObjectContext:[self managedObjectContext]];

[fetchRequest1 setEntity:entity];

NSSortDescriptor *dateSort = [[NSSortDescriptor alloc] initWithKey:@"accidentDate" ascending:NO];
[fetchRequest1 setSortDescriptors:[NSArray arrayWithObject:dateSort]];
[dateSort release], dateSort = nil;

[fetchRequest1 setFetchLimit:1];

NSManagedObject *latest = [[[self managedObjectContext] executeFetchRequest:fetchRequest1 error:&error] lastObject];

[fetchRequest1 release], fetchRequest1 = nil;
0 голосов
/ 20 декабря 2009

Я бы выбрал все события, отсортированные по AccidentDate без предиката, и получил бы первое из массива.

...