首页 > 其他 > 详细

Selector

时间:2015-06-08 16:47:40      阅读:169      评论:0      收藏:0      [点我收藏+]

同函数指针的效果一样,方便消息传递

 

 

SEL sel = @selector(method);创建SEL

NSLog(@"The selector of action is %@",NSStringFromSelector(sel));打印SEL对应方法的名称

- (BOOL)respondsToSelector:(SEL)aSelector;检查类中是否含有aSelector所对应的方法

 

调用方法

- (id)performSelector:(SEL)aSelector;
- (id)performSelector:(SEL)aSelector withObject:(id)object;
- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;

performSelector方法最多包含两个参数,更多参数请使用字典或数组传递

 

 

范例代码

Person.h

-(void)message;
-(void)message:(NSString *)name;
-(void)message:(NSString *)name andWork:(NSString *)work;

 

main.m

Person *person=[[Person alloc]init];
SEL selMessage = @selector(message);
NSLog(@"selMessage method is:%@",NSStringFromSelector(selMessage));
        
if([person respondsToSelector:selMessage]) {
    [person performSelector:selMessage];
}
if([person respondsToSelector:@selector(message:)]){
    [person performSelector:@selector(message:) withObject:@"Mary"];
}
if([person respondsToSelector:@selector(message:andWork:)]) {
    [person performSelector:@selector(message:andWork:) withObject:@"Mary" withObject:@"teacher"];
}

 

Selector

原文:http://www.cnblogs.com/aY-Wonder/p/4561136.html

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