首页 > 代码库 > OC-数组遍历的四种方法
OC-数组遍历的四种方法
数组遍历的四种用法
例:NSArray *array = @[@1,@2,@3,@4];
第一种方法--for循环
for(int i=0;i<array.count;i++){
NSLog( @"%@",array[i] );
}
第二种方法--for循环增强版
//常用的是
for(NSString *str in array){
NSLog(@"%@",str);
}
//万能的是
for(id obj in array){
NSLog(@"%@",obj);
}
第三种方法--枚举器-迭代器
NSEnumerator *en = [array objectEnumerator];
NSString *str =nil;//如果不是字符串的话,也可以用万能 id obj;
while(str=[en nextObject]){
NSLog(@"%@",str);
}
第四种方法--利用Block
//这个方法有要求,就是不能用在不可变数组
//NSArray *array = @[@1,@2,@3,@4];不可变数组是不对的
//创建一个可变数组
NSMutableArray *arr = [NSMutableArray arrayWithArray:@[@1,@2,@3,@4]];
[arr enumeratorObjectsUsingBlock:
^(id obj;NSUInteger idx;BOOL *stop){
NSLog(@"%@",obj);
if(idx==0){
*stop=YES;
}
}];
注意点:大家都知道集合NSSet和数组NSArray有很多共同点,但是set是无序的,所以不能通过索引来获取元素,像这样的set[i],绝对错的
所以目前本人只用枚举器来遍历数组和集合
OC-数组遍历的四种方法