2015-05-06 2 views
0

Я пытаюсь сортировать по возрастанию запрос моей выборки, используя «groupID», который имеет строку типа, но внутри него сохраняется номер в форме счетчика, проблема в том, что возвращаемый массив не «правильно», а не так, как мне захочется, потому что он возвращает элементы, отсортированные как: 0, 1, 10, 2, 3, 4, 5, 6, 7, 8, 9 вместо ожидаемых 0, 1, 2, 3 ... 9, 10Сортировка основного запроса данных по возрастанию

мне удалось найти два решения: 1 - изменить атрибут ядра данных из строки в целом (самый нежелательный сценарий) или 2 - сделать выборку для всех элементов из основных данных, извлекать все из них в массиве, использовать размер массива для запуска цикла for, а внутри цикла for сделать еще одну выборку с pr edicate используя для счетчика цикла, а возвращаемый объект можно сохранить в массиве, поэтому, делая все это я получить отсортированный массив с объектами

А вот мой текущий код:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"SuggestedChannelsEntity" inManagedObjectContext:context]; 
[fetchRequest setEntity:entity]; 

NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"groupID" ascending:YES]; 
NSArray *sortDescription = [[NSArray alloc] initWithObjects:sort, nil]; 
[fetchRequest setSortDescriptors:sortDescription]; 

NSError *error = nil; 
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error]; 

ответ

1

Вы можете использовать один из селекторов сортировки, «localizedStandardCompare:», как это:

NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"groupID" ascending:YES selector:@selector(localizedStandardCompare:)]; 

Это, кажется, работает нормально при условии, что цифры не являются отрицательными.

+0

Благодарим вас за ответ, можете ли вы также предоставить ссылку на документацию? Это будет очень полезно :) –

+0

Хорошая статья: http://nshipster.com/nssortdescriptor/ – andrewbuilder

+0

Документация Apple: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/SortDescriptors/Articles/Creating .html – andrewbuilder

Смежные вопросы