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],绝对错的

所以目前本人只用枚举器来遍历数组和集合

原文地址:https://www.cnblogs.com/wxios/p/4182784.html