objective-c - iOS,for in快速枚举,遍历时是有序还是随机的?
ringa_lee
ringa_lee 2017-04-17 17:40:23
[iOS讨论组]

for in快速枚举,遍历时是有序还是随机的?

ringa_lee
ringa_lee

ringa_lee

全部回复(6)
PHP中文网

oc的for in 快速枚举遍历的时候是按照元素在容器内的顺序(NSArray中元素的顺序是你添加的顺序,NSSetNSDictionry中元素的顺序是按照底层算法进行排序的与你添加的顺序不同)进行枚举的。

要注意的是使用for in快速枚举NSMutableArray这类可变对象时要注意不能对容器进行修改,否则会导致遍历器抛出异常导致程序崩溃。

ringa_lee

从头到尾按顺序

迷茫

有序的。与类型有关,比如数组就是有序,而字典什么的就是无序的。

高洛峰

讲道理的话是有序的。。。

天蓬老师

应该是有序的

巴扎黑

用 for-in 去遍历容器时:

  • NSArray,是按照数组 index 的顺序来遍历。

  • NSDictionary,是通过遍历字典的 keys 数组,再通过 valueForKey: 来获取 value。

  • NSSet,是无序的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号