首页 > 其他 > 详细

OC语法--多态的动态识别及@selector()预编译指令指定选择器

时间:2015-04-22 18:37:49      阅读:244      评论:0      收藏:0      [点我收藏+]

重写:子类方法覆盖父类方法,要求方法名和参数都相同。

重载:同一个类中的两个或两个以上的方法名相同,但是参数不同,方法体也不同。

多态动态识别

对象是不是aClass或其子类的成员?
if([audi isKIndOfClass:[Car class]]){
NSlog(@“audi is a kind of Car");
}

对象是不是aClass成员?
if([car isMemberOfClass:[Car class]]){
NSlog(@“audi is member of Car");
}

对象是不是aClass子类
if([Audi isSubclassOfClass:[Car class]]){
NSlog(@“Audi is subclass of car");
}

判断两个对象是否同一个类型
if([Audi class]==[Benz class]){
NSlog(@“audi and benz is the same class");
}

对象是否响应aSelector指定方法
if([car respondsToSelector:@selector (run)]){
NSlog(@“car responds to run method");
}

@selector()预编译指令指定选择器,其中方法名位于圆括号中。
对象调用aSelector指定的方法

SEL action;
action=@Selector(run);
[car performSelector : action];
等同于 [car performSelector:@selector(run)];

对像调用aSelector指定的方法,传递参数object
-(id)performSelector:(SEL)aSelector;
       withObject:(id)object;

对象调用aSelector 指定的方法,传递参数object1和object2
-(id)performSelector:(SEL)aSelector;
       withObject:(id)object;
     withObject:(id)object;



OC语法--多态的动态识别及@selector()预编译指令指定选择器

原文:http://blog.csdn.net/u010804473/article/details/45194477

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