сортировка запросов-запросов iphone coredata - PullRequest
0 голосов
/ 10 мая 2010

Я использую основные данные и получаю результаты успешно. У меня есть несколько вопросов относительно основных данных 1. Когда я добавлю запись, будет ли она добавлена ​​в конце или в начале объекта. 2. Я использую следующий код для получения данных. Массив заполняется всеми записями. Но они не в том порядке, в котором я вводил записи в сущности. Зачем? на каком основании используется сортировка по умолчанию?

    NSFetchRequest* allLatest = [[NSFetchRequest alloc] init];
[allLatest setEntity:[NSEntityDescription entityForName:@"Latest" inManagedObjectContext:[self managedObjectContext]]];

NSError* error = nil;
NSArray* records = [managedObjectContext executeFetchRequest:allLatest error:&error];
[allLatest release];

3. Способ ввода записей 1,2,3,4 ......... через некоторое время я хочу удалить записи, которые я ввел первым (я имею в виду самые старые данные). Что-то вроде удаления двух самых старых записей. Как это сделать?

Ответы [ 2 ]

4 голосов
/ 10 мая 2010

Сортировка по массиву у вас выглядит так:

NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@"SortKey" ascending:YES] autorelease];
NSArray *sortedList = [records sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]];

initWithKey: аргумент - это свойство, по которому вы хотите отсортировать. Если у вас есть несколько ключей для сортировки, они могут быть добавлены в аргумент sortedArrayUsingDescriptors: в ​​виде списка. Список будет отсортирован по первому дескриптору, а затем по каждой группе по следующим дескрипторам.

-дан

3 голосов
/ 10 мая 2010

Заказ не гарантируется в любом случае. Если вы заботитесь о порядке, вам нужно включить атрибут в вашу сущность (например, назвать его «sequenceNumber») и использовать его в дескрипторе сортировки с вашим NSFetchRequest.

...