我正在尝试按升序对 NSDictionary
进行排序。我正在使用这段代码:
NSDictionary *valDict = self.mGetDataDict[key][rowKey];
for (NSString *valueKey in
[[valDict allKeys] sortedArrayUsingSelector:@selector(compare:)])
{
if ([valueKey isEqualToString:@"attr"])
{
dictRow = self.mGetDataDict[key][rowKey][valueKey];
}
else {
NSString *valKey = self.mGetDataDict[key][rowKey][valueKey];
[arrSeatsStatus addObject:valKey];
}
}
这是我得到的输出:
1 = off;
10 = off;
2 = on;
3 = on;
4 = on;
5 = on;
6 = on;
7 = on;
8 = on;
9 = on;
这是所需的输出:
1: "off",
2: "on",
3: "on",
4: "on",
5: "on",
6: "on",
7: "on",
8: "on",
9: "on",
10: "off"
所需的输出是来自 JSON 的实际值。
最佳答案
您可以像这样使用 NSSortDescriptor:
NSArray* array1 = @[@"1 = off", @"10 = off", @"2 = on", @"3 = on"];
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"" ascending:YES selector:@selector(localizedStandardCompare:)];
NSLog(@"Ordered array: %@", [array1 sortedArrayUsingDescriptors:@[ descriptor ]]);
产生这个输出:
2013-06-04 12:26:22.039 EcoverdFira[3693:c07] Ordered array: (
"1 = off",
"2 = on",
"3 = on",
"10 = off"
)
关于 NSSortedDescriptor
的 here 有一篇很好的文章.
关于iphone - 按升序对 NSDictionary 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16913847/