2016-11-25 83 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

web中的所有解決方案均與升序相關。但在這裏我有一個自定義模型。 我該如何實現它?

+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]; 
}];