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

は、ここであなたが本当にあなたはまた、昔ながらの方法を使用して停止する必要があり、この

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

のようなモデル値を使用する必要がありますが、コード

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

ですNSMutableDictionaryとスウィフト辞書を使用し始める...あなたはスウィフトでプログラミングしていません:)

+0

はその後 – gooberboobbutt

+1

@gooberboobbuttを同じ順序を示す、動作していないようです。コードを 'sortInPlace'で更新しました。もう一度お試しください。 –

+0

ありがとう!できるだけこれを答えとして選択します。また、スウィフト辞書をチェックします。 – gooberboobbutt

1

すべてのエントリが「ランク」の値持っていると仮定すると:私は新しい配列を返す `sort`を使用するのではい:

ditto.sortInPlace(){ $0["rank"]! as! Int > $1["rank"]! as! Int } 
関連する問題