2016-05-31 82 views
1

我得到JSON象下面這樣:排序的NSMutableArray根據對象

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

我不知道如何將數組1根據「訂單」,這本身就是一個數組進行排序。請幫忙。我無法弄清楚如何使用NSSortDescriptor或Objective-C中的其他方法對其進行排序。

+0

更新您的問題,試圖對此數組進行排序。 – rmaddy

+0

@iOSDeveloper你是否使用我的答案得到它的工作? –

回答

1

You'de想用一個比較,它看起來是這樣的排序:

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

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

凡jsonData應由字典持有數組1的正確名稱來代替。

+0

你忽略提到這個'compare:'方法需要存在於'array1'中的對象,而不是調用'sortedArrayUsingSelector:'的類。這並沒有考慮到你正在對一個字典數組進行排序,並且排序順序在這些字典的另一個數組中。 – rmaddy

+0

@maddy更改爲本地比較清晰度 –

+0

這仍然是完全錯誤的。 'sortedArrayUsingSelector:'不會將塊作爲參數。塊的實現並不反映正在排序的數據。 – rmaddy

相關問題