2016-05-31 6 views
1

を目的によれば:ソートNSMutableArrayの私は以下のようなJSONを取得しています

"Array1": 
[ 
    { 
    "abc": "3_name", 
    "id": 34, 
    "order": [3] 
    }, 
    { 
    "abc": "1_name", 
    "id": 50, 
    "order": [1] 
    }, 
    { 
    "abc": "2_name", 
    "id": 4, 
    "order": [2] 
    } 
] 

私は配列そのものである「順序」に従ってARRAY1をソートする方法がわかりません。助けてください。私はNSSortDescriptorやObjective-Cで利用可能な他のメソッドを使ってソートする方法を理解できませんでした。

+0

この配列をソートしようとすると、あなたの質問が更新されます。 – rmaddy

+0

@iOSDeveloper私の答えを使用して動作させましたか? –

答えて

1

You'deは次のようになり、コンパレータを使用してソートする:jsonDataがARRAY1を保持する辞書の正しい名前に置き換えます

id customCompare = ^(NSMutableDictionary * obj1, NSMutableDictionary * obj2) { 
    return [obj1[@"order"][0] compare:obj2[@"order"][0]]; 
}; 

NSArray *sortedArray = [jsonData[@"Array1"] sortedArrayUsingComparator:customCompare]; 

+0

あなたは 'sortedArrayUsingSelector:'を呼び出すクラスではなく、 'compare1'メソッドが' array1'のオブジェクトに存在する必要があることに気をつけませんでした。そして、これはあなたが辞書の配列を並べ替えることを考慮していないし、並べ替え順序はそれらの辞書のさらなる配列にあります。 – rmaddy

+0

@maddyは分かりやすくするためにローカルコンパレータに変更しました –

+0

これはまだ完全に間違っています。 'sortedArrayUsingSelector:'は引数としてブロックを取っていません。ブロックの実装にはソートされるデータは反映されません。 – rmaddy

関連する問題