A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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

5 个回复

倒序浏览
赞   很好   直的收藏
回复 使用道具 举报
没看懂。。。。。。。。
回复 使用道具 举报
段山虎 发表于 2015-8-17 22:06
没看懂。。。。。。。。

兄弟你学java 的,看ios 当然看不懂
回复 使用道具 举报
wangchao1992 发表于 2015-8-17 22:10
兄弟你学java 的,看ios 当然看不懂

我以为我弱爆了,大哥你分怎么攒够的
回复 使用道具 举报
段山虎 发表于 2015-8-17 22:18
我以为我弱爆了,大哥你分怎么攒够的

每天回帖5次,每天发帖5次, 一天可得15个黑马币。另外注意有回帖奖励的帖子。每天下午4-5点还有活动送黑马币哦。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马