2016-07-19 3 views
0
var ditto:[NSMutableDictionary] = [["name":"Bob", "rank":14], ["name":"Randy", "rank":5], ["name":"Julie", "rank":20]] 

Как я могу сортировать то же числовое число, от высокого до низкого, в соответствии с «рангом»? Это результат я хочу:Как упорядочить по числовому порядку от наивысшего до самого низкого значения в [NSMutableDictionary]?

var ditto:[NSMutableDictionary] = [["name":"Julie", "rank":20],["name":"Bob", "rank":14], ["name":"Randy", "rank":5]] 

ответ

1

Вот код

ditto.sortInPlace { ($0.0["rank"] as! Int) > ($0.1["rank"] as! Int) } 

Однако вы должны действительно использовать значение модели, как это

struct Person { 
    let name: String 
    let rank: Int 
} 

Вы также должны прекратить использовать старый способ моды NSMutableDictionary и начните использовать словарь Swift ... вы программируете в Swift, не так ли :)

+0

, кажется, не работает, показывая тот же порядок, потом – gooberboobbutt

+1

@gooberboobbutt: Да, потому что я использовал 'sort', который возвращает новый массив. Я обновил свой код с помощью 'sortInPlace'. Пожалуйста, попробуйте еще раз. –

+0

Спасибо! Я выберу это как ответ, как только смогу. Также я изучу словарь Swift. – gooberboobbutt

1

Предполагая, что все записи имеют «ранг» значение:

ditto.sortInPlace(){ $0["rank"]! as! Int > $1["rank"]! as! Int }