我得到一个NSDictionary
低谷JSON
。执行NSLog
密钥顺序如下:40617、40737、40946、41066、41306。这就是我想要的顺序,因为这些值是预先排序的。但是当循环通过时,NSDictionary
我得到以下顺序:40617、41066、40737、40946、41306。是否可以按照我使用时看到的顺序获得它NSLog
?
问问题
935 次
3 回答
4
字典(地图)未排序。迭代它们时没有保证顺序。您只能保证获得所有条目。
因此,您需要获取键,以您想要的方式对其进行排序,然后获取已排序键的值。
例如:
NSArray *keys = [myDictionary allKeys];
NSArray *sortedKeys = [keys sortedArrayUsingSelector:@selector(compare:)];
for (id key in sortedKeys) {
id value = [myDictionary objectForKey:key];
NSLog(@"%@ = %@", key, value);
}
于 2013-10-22T09:15:23.473 回答
2
没有按定义排序,因此NSDictionary
当您添加值时,它们不必一直是相同的顺序。如果你想要一个有序的集合,你应该使用NSArray
于 2013-10-22T09:15:14.617 回答
-1
默认情况下,您没有该选项。你必须自定义。
http://www.cocoawithlove.com/2008/12/ordereddictionary-subclassing-cocoa.html
于 2013-10-22T09:18:05.053 回答