Сортировка массива объектов пользовательского класса - PullRequest
0 голосов
/ 30 июня 2011

У меня проблема с сортировкой.Сценарий объясняется так: у меня есть класс (Предположим, от лица), и он имеет 4 атрибута (firstName, lastName, Address, salary). Я создаю его объект, собираю все атрибуты и помещаю этот объект в NSMutableArray искоро.Таким образом, на каждый индекс массива у меня есть один объект (т.е. набор из 4 атрибутов).Теперь я хочу отсортировать этот массив по зарплате, может кто-нибудь помочь мне с этой проблемой, буду благодарен.,

Ответы [ 3 ]

0 голосов
/ 30 июня 2011

используйте это

NSSortDescriptor *sorter = [[[NSSortDescriptor alloc] initWithKey:@"salary" ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject: sorter];
    [yorArrary sortUsingDescriptors:sortDescriptors];
0 голосов
/ 30 июня 2011

Либо вы реализуете метод сравнения для вашего объекта:

- (NSComparisonResult)compare:(Person *)otherObject {
return [self.birthDate compare:otherObject.birthDate];
 }

 NSArray *sortedArray;
 sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(compare:)];

или, как правило, даже лучше: (Селектором сортировки по умолчанию NSSortDescriptor является сравнение:)

NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"birthDate"
                                          ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingDescriptors:sortDescriptors];
0 голосов
/ 30 июня 2011

См. Документацию для NSArray. У него есть несколько методов сортировки. Ищите слово «сортировать», и вы найдете их. (Вам понадобится либо API на основе блоков, либо на основе функций).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...