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

关于performSelector

时间:2014-08-11 23:49:13      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   os   io   strong   文件   

 

偶尔机会接触到了它。由网上的知识总结了一个小代码。希望,对大家有用。

 

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    self.title=@"performSelector";
    
    
    //performSelector是运行时系统负责去找函数/方法的,在编译时候不做任何校验;但是直接调用肯定在编译是会校验。如果函数不存在,那么直接调用 在编译时候就能够发现(借助Xcode可以写完就发现),但是使用performSelector的话一定是在运行时候才能发现(此时程序崩溃)
    //Cocoa支持在运行时 向某个类添加方法(应该极少人用到, 即方法编译时不存在,但是运行时候存在,这时候必然需要使用performSelector去调用)
    
    /*直接调用方法时候,一定要在头文件中声明该方法,使用时候,也要将头文件import进来
    
    而使用performSelector时候, 可以不用import头文件,对包含方法的 对象 调用performSelector即可*/
    
    // 没有参数
    BOOL isNoParam= [self respondsToSelector:@selector(methodNoParam)];
    if (isNoParam) {
        [self performSelector:@selector(methodNoParam)];
    }
    
    // 一个参数
    BOOL isOneParam= [self respondsToSelector:@selector(methodWithOneParam:)];
    if (isOneParam) {
        [self  performSelector:@selector(methodWithOneParam:) withObject:@"firsht"];
    }
    
    // 二个参数
    BOOL isParams= [self  respondsToSelector:@selector(methodWithParams: andParamSecond:)];
    if (isParams) {
        [self  performSelector:@selector(methodWithParams: andParamSecond:) withObject:@"first" withObject:@"second"];
    }

}
#pragma -mark -perform
- (void)methodNoParam{
    NSLog(@"methodNoParam");
}

- (void)methodWithOneParam:(id)paramFirst{
    NSLog(@"methodWithOneParam: %@", paramFirst);
    
}

- (void)methodWithParams:(id)paramFirst andParamSecond:(id) paramSecond{
    NSLog(@"methodWithOneParam: %@,%@", paramFirst,paramSecond);
    
}


 

 

 

 打印出的结果:

 

 

2014-08-11 20:59:43.895 performSelector[11302:60b] methodNoParam

 

2014-08-11 20:59:43.895 performSelector[11302:60b] methodWithOneParam: firsht

 

2014-08-11 20:59:43.896 performSelector[11302:60b] methodWithOneParam: first,second

 

 

 

关于performSelector,布布扣,bubuko.com

关于performSelector

标签:style   blog   color   使用   os   io   strong   文件   

原文地址:http://www.cnblogs.com/yang-guang-girl/p/3905626.html

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