6

我将数据存储在NSMutableDictionary存储 Web 服务接收到的数据中。

我想以 alpha 顺序显示数据,但我们知道 Dictionary 以自己的方式存储数据,所以我得到了 iOS 5 和 iOS 6 的不同顺序。iOS 5 很好,但在 iOS 6 中它改变了顺序。

我将 int 键和对象存储为值。

对象包含 ID、名称和描述。

EX:
  key  value
  1 -  (12,bhgjksd,kijdh)
  6 -  (13,kjfd,ikjk)
  2 -  (14,ljiuhbdf,dsjhfj)

如何按 Object.Name 属性对我的字典进行排序。或根据 Object.Name 排序顺序获取密钥。

我不想按键排序我想按 Object.Name 排序,它作为对象存储在值部分中。

欢迎任何形式的帮助.....提前谢谢..

4

2 回答 2

6

试试这个,

NSArray *sortedKeys = [dict keysSortedByValueUsingComparator: ^(id obj1, id obj2) {

     return (NSComparisonResult)[obj1.name compare:obj2.name];;
}];

您将获得sortedKeys数组中的所有键,按object.name属性顺序排序。您可以使用这些键从字典中获取值作为[dict valueForKey:[sortedKeys objectAtIndex:i]]. 有关更多详细信息,请查看苹果文档

于 2012-12-06T06:54:16.547 回答
3
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"Object.Name" ascending:YES];
[items sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];

还,

NSArray *ordered = [myDictionary keysSortedByValueUsingComparator:^NSComparisonResult(id obj1, id obj2){
    return [obj1.name compare:obj2.name];
}];
于 2012-12-06T07:00:32.063 回答