黑马程序员技术交流社区

标题: OC-动态类型检测: 响应方法 [打印本页]

作者: wangchao1992    时间: 2015-8-17 17:50
标题: OC-动态类型检测: 响应方法
本帖最后由 wangchao1992 于 2015-8-17 17:50 编辑

动态类型检测: 响应方法
        Animal *ani = [Dog new];
        SEL s1 = @selector(eat);
         1)通过performSelector响应无参的方法
         if ([ani respondsToSelector:s1]) {
            //[(Dog*)ani eat];
             [(Dog*)ani eat:@"一块沾有粑粑的巧克力"];  //有参
            [ani performSelector:s1]; //作用,响应方法  没有参数
        }else{   
            NSLog(@"该对象不能调用此方法");
           }  

          2)通过performSelector: withObject:响应有参的方法
          SEL s2 = @selector(eat:);
          [ani performSelector:s2 withObject:@"一块沾有粑粑棒棒糖"];

         3)通过performSelector: withObject: withObject:响应有两个参的方法
          [ani performSelector:@selector(eat:andFoodName:) withObject:@"班长养得饿狗" withObject:@"一块沾有粑粑的棒棒糖"];

Animal类
#import <Foundation/Foundation.h>
@interface Animal : NSObject
-(void)run;
@end
Dog 类
#import "Animal.h"
@interface Dog : Animal
-(void)eat;
-(void)eat:(NSString *)foodName;
-(void)eat:(NSString *)dogName andFoodName:(NSString *) foodName;
@end


作者: 愿得一人心1111    时间: 2015-8-17 21:42
赞   很好   直的收藏
作者: 段山虎    时间: 2015-8-17 22:06
没看懂。。。。。。。。
作者: wangchao1992    时间: 2015-8-17 22:10
段山虎 发表于 2015-8-17 22:06
没看懂。。。。。。。。

兄弟你学java 的,看ios 当然看不懂
作者: 段山虎    时间: 2015-8-17 22:18
wangchao1992 发表于 2015-8-17 22:10
兄弟你学java 的,看ios 当然看不懂

我以为我弱爆了,大哥你分怎么攒够的
作者: wangchao1992    时间: 2015-8-17 23:07
段山虎 发表于 2015-8-17 22:18
我以为我弱爆了,大哥你分怎么攒够的

每天回帖5次,每天发帖5次, 一天可得15个黑马币。另外注意有回帖奖励的帖子。每天下午4-5点还有活动送黑马币哦。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2