我将数据存储在NSMutableDictionary
中以存储由Web服务接收的数据。
我想以alpha顺序显示数据但是我们知道字典存储数据以自己的方式存在,所以我得到了iOS 5和iOS 6的不同顺序.iOS 5很好但是在iOS 6中它改变了顺序。
我将int key和object存储为值。
对象包含ID,名称和描述。
EX:
key value
1 - (12,bhgjksd,kijdh)
6 - (13,kjfd,ikjk)
2 - (14,ljiuhbdf,dsjhfj)
如何按Object.Name属性对Dictionary进行排序。 或者根据Object.Name排序顺序获取密钥。
我不想对我想要对作为对象存储在值部分中的Object.Name进行排序的键进行排序。
欢迎任何形式的帮助...... 提前谢谢..
答案 0 :(得分:6)
试试这个,
NSArray *sortedKeys = [dict keysSortedByValueUsingComparator: ^(id obj1, id obj2) {
return (NSComparisonResult)[obj1.name compare:obj2.name];;
}];
您将获得sortedKeys
数组中的所有键,按object.name
属性的顺序排序。您可以使用这些键从字典中获取值[dict valueForKey:[sortedKeys objectAtIndex:i]]
。有关详细信息,请check apple documentation。
答案 1 :(得分: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];
}];