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

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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。