根据对象

时间:2016-05-31 21:43:47

标签: objective-c sorting nsmutablearray

我正在获得如下JSON:

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

我不知道如何根据“order”对Array1进行排序,“order”本身就是一个数组。请帮忙。我无法弄清楚如何使用NSSortDescriptor或Objective-C中提供的任何其他方法对其进行排序。

1 个答案:

答案 0 :(得分:1)

您想要使用比较器进行排序,这看起来像是:

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

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

其中jsonData应替换为持有Array1的dict的正确名称。