主要用于一个数组的元素需要执行同样的方法.

//模型

 1 #import "Animal.h"
 2 
 3 @implementation Animal
 4 - (void)setName:(NSString *)name
 5 {
 6     _name = name;
 7 }
 8 
 9 - (void)printInfo:(NSString *)info
10 {
11     NSLog(@"info = %@",info);
12 }

//常见的循环遍历

 1  NSMutableArray *array = [[NSMutableArray alloc]init];
 2         //for 循环
 3         for (int i = 0; i < 10; i++) {
 4             Animal *animal = [[Animal alloc]init];
 5             animal.name = @"monkey";
 6             [array addObject:animal];
 7         }
 8         
 9         //for in
10         for (Animal *aniaml in array) {
11             [aniaml printInfo:aniaml.name];
12         }
13     
14         //迭代器
15         NSEnumerator *enumerator = [array objectEnumerator];
16         id object = nil;
17         while (object = [enumerator nextObject]) {
18             if ([object respondsToSelector:@selector(printInfo:)]) {
19                 [object printInfo:((Animal*)object).name];
20             }
21         }
22         
23         //block
24         [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
25             if ([obj isKindOfClass:[Animal class]]) {
26                 if ([obj respondsToSelector:@selector(printInfo:)]) {
27                     [obj printInfo:((Animal*)obj).name];
28                 }
29             }
30         }];

//NSArray  ->  makeObjectsPerformSelector

1 [array makeObjectsPerformSelector:@selector(printInfo:) withObject:@"name"];

//执行结果

 

记下笔记.

 

posted on 2015-11-12 09:47  农场的小伙  阅读(396)  评论(0编辑  收藏  举报