扫码关注官方订阅号
for in快速枚举,遍历时是有序还是随机的?
ringa_lee
oc的for in 快速枚举遍历的时候是按照元素在容器内的顺序(NSArray中元素的顺序是你添加的顺序,NSSet和NSDictionry中元素的顺序是按照底层算法进行排序的与你添加的顺序不同)进行枚举的。
NSArray
NSSet
NSDictionry
要注意的是使用for in快速枚举NSMutableArray这类可变对象时要注意不能对容器进行修改,否则会导致遍历器抛出异常导致程序崩溃。
NSMutableArray
从头到尾按顺序
有序的。与类型有关,比如数组就是有序,而字典什么的就是无序的。
讲道理的话是有序的。。。
应该是有序的
用 for-in 去遍历容器时:
NSArray,是按照数组 index 的顺序来遍历。
NSDictionary,是通过遍历字典的 keys 数组,再通过 valueForKey: 来获取 value。
NSSet,是无序的。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
oc的for in 快速枚举遍历的时候是按照元素在容器内的顺序(
NSArray中元素的顺序是你添加的顺序,NSSet和NSDictionry中元素的顺序是按照底层算法进行排序的与你添加的顺序不同)进行枚举的。要注意的是使用for in快速枚举
NSMutableArray这类可变对象时要注意不能对容器进行修改,否则会导致遍历器抛出异常导致程序崩溃。从头到尾按顺序
有序的。与类型有关,比如数组就是有序,而字典什么的就是无序的。
讲道理的话是有序的。。。
应该是有序的
用 for-in 去遍历容器时:
NSArray,是按照数组 index 的顺序来遍历。
NSDictionary,是通过遍历字典的 keys 数组,再通过 valueForKey: 来获取 value。
NSSet,是无序的。