Определить последний?Базовые данные не имеют внутренней концепции порядка.Если вы имеете в виду под самым дальним расстоянием, основанным на свойстве distance
, то вы можете сделать следующее:
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Trip" inManagedObjectContext:managedObjectContext];
NSFetchRequest *request = [[ NSFetchRequest alloc] init];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"distance" ascending:NO];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
[request setSortDescriptors:sortDescriptors];
[request setFetchLimit:7];
[sortDescriptor release];
NSError *error;
NSArray *tripArray = [managedObjectContext executeFetchRequest:request error:&error];
Обратите внимание, что добавление -setFetchLimit:
приведет к тому, что этот запрос вернет только 7 результатов.Он вернет «первую» 7 в зависимости от вашего вида.Поэтому, если вы хотите ближайший, переверните часть ascending:
своего рода.
-mutableCopy
Нет абсолютно никакого смысла в вызове -mutableCopy
для возвращаемого NSArray
от -executeFetchRequest: error:
.Добавление объектов к этому NSArray
не добавит их в Базовые данные, а удаление их из этого NSArray
не удалит их из Базовых данных.Поэтому оно не имеет абсолютно никакой ценности и просто расточительно.
Вы помните, где вы это видели?Я уже некоторое время пытаюсь выследить это.