首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >按键顺序遍历字典

按键顺序遍历字典
EN

Stack Overflow用户
提问于 2013-03-19 02:52:49
回答 5查看 163关注 0票数 0

我使用以下语法打印字典:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for(id key in myDict)
    NSLog(@"key=%@ value=%@", key, [myDict objectForKey:key]);

但我注意到,oeder并不是按照指数计算的。替他说话如果我的字典是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myDict = { 1:a, 2:b, 3:c....26:z}

上面的代码不会以oreder 1,2,3,4打印值,而是按随机顺序打印。

如何使用枚举代码(如上面指定的)顺序遍历该字典。我使用的键是一个字符串,如"ajay“、”abhi:等“

编辑:将密钥复制到另一个数组不可避免吗??那是唯一的办法。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-03-19 02:58:34

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
How do I get to traverse that dictionary in order using enumeration code, like the one specified above. The key in my usage is a string such as "ajay" " abhi: etc

根据您在setObject中的NSDictionary,您不能按该顺序检索。

如果要以除添加顺序以外的任何排序顺序获得结果,请执行以下操作。

然后,您可以获得作为数组的所有键,allKeys,然后对这个数组进行排序,然后从字典中检索对象。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NSMutableDictionary *dict=[NSMutableDictionary new];
[dict setObject:@"anoop" forKey:@"aKey"];
[dict setObject:@"john" forKey:@"jKey"];
[dict setObject:@"baban" forKey:@"bKey"];
[dict setObject:@"chandan" forKey:@"cKey"];

NSArray *keys=[dict allKeys];
NSArray *sortedKeys=[keys sortedArrayUsingSelector:@selector(compare:)];
for (NSString *key in sortedKeys) {
    NSLog(@"Key: %@, Value : %@",key,dict[key]);
}
票数 2
EN

Stack Overflow用户

发布于 2013-03-19 02:55:33

如果需要按特定顺序排列项目,则应该使用NSArray。字典键的顺序不能保证。

票数 1
EN

Stack Overflow用户

发布于 2013-03-19 02:55:42

你可以拿到钥匙就像.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NSArray *keys = [myDict allKeys];

然后对键进行排序,并迭代排序的键数组,以便按顺序获得值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15497434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文