Objective c 按存储为值的对象的属性对NSDictionary排序

Objective c 按存储为值的对象的属性对NSDictionary排序,objective-c,ios,Objective C,Ios,我将数据存储在NSMutableDictionary中,以存储web服务接收的数据 我想以alpha顺序显示数据,但正如我们所知,字典以自己的方式存储数据,所以我得到的ios5和ios6的顺序不同。iOS 5可以,但iOS 6会改变顺序 我将int键和对象存储为值 对象包含ID、名称和描述 EX: key value 1 - (12,bhgjksd,kijdh) 6 - (13,kjfd,ikjk) 2 - (14,ljiuhbdf,dsjhfj) 如何按Object.

我将数据存储在
NSMutableDictionary
中,以存储web服务接收的数据

我想以alpha顺序显示数据,但正如我们所知,字典以自己的方式存储数据,所以我得到的ios5和ios6的顺序不同。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排序,它作为Object存储在值部分

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

试试这个

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

     return (NSComparisonResult)[obj1.name compare:obj2.name];;
}];
您将获得
sortedKeys
数组中的所有键,按
object.name
属性的顺序进行排序。您可以使用这些键从字典中获取值,如
[dict valueForKey:[sortedKeys objectAtIndex:i]
。欲知更多详情,请

而且


多亏有时间,你可以看看这个hi-Amrit。但在这个问题上,他想要基于键的排序,而我想要基于值的排序。谢谢这解决了我的问题,我喜欢使用比较器从KeysSortedByValues进行排序。首先我是从这里找到的。感谢尝试帮助我。这也有助于我回答问题。我不知道我只能接受一个答案,所以我选择了另一个答案。感谢尝试帮助我。我通过使用Comparator键SortedByValues解决了我的问题。这也有助于我理解NSString。我并没有从您那里复制,我只是用两种方式发布了答案。这取决于行动,他想怎么做。甚至在你和我的答案中也存在一些差异。我不在乎是否有人接受我的回答。即使是投反对票对我也没问题;)
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];
}];