2016-05-31 77 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

相关问题