您的位置:首页 > 其它

选择器Selector的使用

2016-03-15 17:50 253 查看
selector oc 数据类型 选择器 跨类传参 方法名 sel it 分类: [iPhone开发]

  Selector是OC特有的一种数据类型。可以简单理解为方法的调用。和普通方法调用不同的是。选择器的特点是可以跨类传参。你可以在A类中声明某方法,然后在B类中控制该方法的调用。

  说白了SEL就是返回方法名。

  这样的机制大大的增加了我们的程序的灵活性,我们可以通过给一个方法传递SEL参数,让这个方法动态的执行某一个方法;我们也可以通过配置文件指定需要执行的方法,程序读取配置文件之后把方法的字符串翻译成为SEL变量然后给相应的对象发送这个消息。

  SEL sel = @selector(setName:age:); //selector的声明

  

  当然,在实际应用中,selector是不需要使用这个声明的。因为selector实际上就是方法名。所以直接使用写好的方法名就行了。

  跨类动态调用方法示例:

  a.m

  

  -(void) forTest

     {

B *b = [B initWithDelegate:self 

  Selector1: @selector(testA:) 

  Selector2:@selector(testB:) 

  isA:YES];

     }

     

     -(void) testA

     {

NSLog(@"I'm TestA");

     }

     -(void) testB

     {

NSLog(@"I'm TestB");

     }

     b.m

     -(id)initWithDelegate:(id) m_delegate

  Selector1: (SEL) testA

  Selector2: (SEL) testB

  isA:(BOOL) isTrue

    {

forTestA = testA;//在H文件中定义过SEL类型的forTestA了。

  forTestB = testB;//同上

if(isTrue)

    [m_delegate forTestA];

        else 

    [m_delegate forTestB];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: