4》NSArray遍历的四种方法 第一种,for循环 void arrayFor() { //快速创建一个oc数组 NSArray *array = @[@”one”,@”two”]; //遍历数组 for(int i=0; i<array.count ; i++) { NSLog(@”array[%i]=%@”,i ,array); } } 第二种,快速遍历for(if obj inarray) void arrayFor() { NSArray *array = @[@”one”,@”two”]; for(id obj in array) { NSLog(@”%@”,obj); } } 第三种 调用block,原理:每遍历一个元素,就会调用一次block,并且把这个元素和下标当做block的参数传给id obj和idx void arrayFor() { NSArray *array = @[@”one”,@”two”]; [array enumerateObjectsUsingBlock:^(idobj, NSInteger idx, BOOL *stop) {NSLog(@”array[%zi]=%@”,idx,obj); if(idx==1) {*stop=YES;} }]; 第四种 通过迭代器遍历数组 void arrayFor() { NSArray *array = @[@”one”,@”two”]; //获取数组的迭代器 NSEnumerator *enumerator = [arrayobjectEnumerator]; id obj = nil; //获取下一个数组元素,当下一个元素不为空的时候,继续遍历直到下个元素为空 while((obj =[enumeratornextObject])!=nil) { NSLog(@”%@”,obj); } 3>NSDictionary的遍历 第一种 for循环快速遍历 void dictFor() { NSDictionary*dict=@{@”k1”:@”v1”,@”k2”:@”v2”}; //遍历字典的所有key for(id key in dict) { id value=[dict objectForKey:key]; NSLog(@”%@=%@”,key,value); } 第二种 使用迭代器遍历 void dictFor() { NSDictionary*dict=@{@”k1”:@”v1”,@”k2”:@”v2”}; NSEnumerator *enumer=[dictkeyEnumerator]; id key =nil; while(key=[enumer nextObject]) { id value=[dict objectForKey:key]; NSLog(@”%@=%@”,key ,value); } 第三种 使用block遍历字典 void dictFor() { NSDictionary*dict=@{@”k1”:@”v1”,@”k2”:@”v2”}; [dictenumeratorKeysAndObjectsUsingBlock:^(id key ,id obj ,BOOL *stop) {NSLog(@”%@=%@”,key ,obj);} ];
|