首页 > 移动平台 > 详细

iOS为同一个类型的对象执行同一个方法

时间:2015-11-12 09:57:18      阅读:311      评论:0      收藏:0      [点我收藏+]

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

//模型

 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"];

//执行结果

 

技术分享

记下笔记.

 

iOS为同一个类型的对象执行同一个方法

原文:http://www.cnblogs.com/luohome-ios/p/4958009.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!