2016-11-25 6 views
0
Student *s1 = [Student new]; 
s1.city = @"Delhi"; 

Student *s2 = [Student new]; 
s2.city = @"Mumbai"; 

NSArray *arrModels = @[s1,s2]; 
NSArray *arrCompareModel = @[@"Mumbai",@"Delhi"]; 

мне нужно сортировать на основе в on arrCompareModelarrModels.Сортировка массива, основанный на модели сравнения IOS

Все решения в сети связаны с восходящим. Но здесь у меня есть пользовательская модель. Как мне это достичь?

+1

Используйте 'sortedArrayUsingComparator:', вы можете проверить http://stackoverflow.com/questions/38768463/sort-nsarray-custom-objects-by-another-nsarray-custom-objects/38769228 # 38769228 с той разницей, что 'indexForItem: inList:' может просто быть '[arrCompareModel indexOfObject: student1Or2AccordingToTheCase.city];' – Larme

+0

проверить мой ответ –

ответ

0

Вы должны написать это для сортировки по убыванию

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"city" ascending:false]; 
NSArray *sortedArray = [arrModels sortedArrayUsingDescriptors:@[sortDescriptor]]; 
+0

Это не вопрос Тион. Он хочет, чтобы элементы упорядочивались по порядку 'arrCompareModel'. – Larme

+0

, что не похоже на поиск OP. – holex

0

Попробуйте что-то вроде этого:

NSArray *sortedArray = [arrModels sortedArrayUsingComparator:^NSComparisonResult(Student *obj1, Student *obj2) { 
    return [arrCompareModel indexOfObject:obj1.city] < [arrCompareModel indexOfObject:obj2.city]; 
}]; 
Смежные вопросы