1

基本上我有一個NSMutableArray其中包含幾個NSDictionaries。我希望根據出現在每個NSDictionaries中的一個數值對這個數組進行排序。如何通過數值對包含NSDictionary的NSMutableArray進行排序?

例如,如果這些人全部NSDictionaries的:

dict_1 
{ 
    some_val,   @"blah" 
    some_other_val, 135 
} 

dict_2 
{ 
    some_val,   @"blah" 
    some_other_val, 10 
} 

dict_3 
{ 
    some_val,   @"blah" 
    some_other_val, 35 
} 

然後我想基於對"some_other_val"值來對它們進行排序。我試圖用排序描述符來做這件事,但是我給我提供了錯誤的結果。這裏是我用來排序數組的代碼:

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"some_other_val" ascending:NO]; 
     [myArray sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]]; 

正如我所提到的,這並不能提供我期待看到的結果。以下是排序的結果:

Before: 
135 
10 
35 

After: 
35 
135 
10 

至於我可以告訴它只是想,如果他們是字符串的值進行排序。我已經在網上看了一下,看看我能否找到解決問題的方法,但是我處於死路一條。

請有人能提供一些建議嗎?

+0

你隨意更改「some_other_val」的類型? – LuisEspinoza 2012-03-20 17:44:00

+0

我不確定我完全理解你的意思,但是我可以根據需要對NSDictionary進行更改。 – 2012-03-20 17:46:32

回答

2

我認爲這幾種形式要做到這一點,第一個選項:

我認爲,如果你添加some_other_val到字典作爲NSNumber的,你可以得到你想要的結果,沒有改變的休息。

我會找別人。

+0

user1118321給你另一個偉大的提示,您可以使用自定義排序功能進行排序。 – LuisEspinoza 2012-03-20 17:55:27

2

爲什麼不直接使用的其他方法,如sortUsingFunction:context:sortUsingComparator一個:?

相關問題