码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-22 18:40:14      阅读:638      评论:0      收藏:0      [点我收藏+]

标签:objective-c      多态   

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

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

多态动态识别

对象是不是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()预编译指令指定选择器

标签:objective-c      多态   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!