for in快速枚舉,遍歷時(shí)是有序還是隨機(jī)的?
ringa_lee
oc的for in 快速枚舉遍歷的時(shí)候是按照元素在容器內(nèi)的順序(NSArray
中元素的順序是你添加的順序,NSSet
和NSDictionry
中元素的順序是按照底層算法進(jìn)行排序的與你添加的順序不同)進(jìn)行枚舉的。
要注意的是使用for in快速枚舉NSMutableArray
這類可變對(duì)象時(shí)要注意不能對(duì)容器進(jìn)行修改,否則會(huì)導(dǎo)致遍歷器拋出異常導(dǎo)致程序崩潰。
用 for-in 去遍歷容器時(shí):
NSArray,是按照數(shù)組 index 的順序來(lái)遍歷。
NSDictionary,是通過(guò)遍歷字典的 keys 數(shù)組,再通過(guò) valueForKey: 來(lái)獲取 value。
NSSet,是無(wú)序的。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)