Сортировка NSArray, который содержит пользовательские объекты - PullRequest
1 голос
/ 15 марта 2012

У меня есть NSArray, которые содержат объекты. мои объекты такие:

@interface Personne : NSObject{

    int _id;
    NSString *name;
}

У меня есть веб-сервисы, которые возвращают мне людей по имени. например; когда я нажимаю в строке поиска и ставлю «а», сервер возвращает мне всех лиц, в имени которых содержится «а», я помещаю результат в NSArray. Теперь я хотел бы отсортировать мой массив и поместить людей, чье имя начинается с «a» в начале моего массива, а остальные в конце. Как я могу это сделать?

Изменить: Например, у меня есть ответ сервера, как это:

marakech  
arabie  
malakit  
arsenal  
astonvilla

Я бы хотел отсортировать так:

arabie 
arsenal 
astonvilla 
malakit

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

Вы можете использовать этот метод:

- (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr

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

mySortedArray = [myArrat sortedArrayUsingComparator: ^(id a, id b) {
    //criteria;
    return [a compare:b];
2 голосов
/ 15 марта 2012

Я думаю, вам понадобится NSMutableArray, а не NSArray.Также для сортировки используйте sortUsingSelector:

, т.е. сначала вы можете написать метод для вашего Personne класса - (NSComparisonResult)compare:(MyObj *)otherObj, затем вы можете отсортировать изменяемый массив с помощью sortUsingSelector:@selector(compare:)

.- Как отсортировать массив NSMutableArray с пользовательскими объектами в нем?

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