美文网首页
What is Selector?

What is Selector?

作者: huiyuM | 来源:发表于2016-12-28 17:26 被阅读9次

    翻译自这里

    selector 是一个对象(object)选择执行某个方法的名称,或者是代码编译后用来唯一标识一个方法。selector 自己不能做任何事,它只是定义了一个方法。selector 与普通字符串的区别就是编译器确保它是唯一的。它只有在运行时扮演类似动态方法指针的角色,也就是正确指向一个类的实现文件中的方法。
    例如,你创建了 run 方法,和 Dog, Athlete, ComputerSimulation 这些类,并且这些类都实现了 run 方法。对象可以通过 selector 调用各自的 run 方法。

    获取 selector

    SELselector 编译后的类型,通常有两种方式获取 selector:

    • 在编译时期,用 @selector
      SEL aSelector = @selector(methodName);
    • 在运行时期,用 NSSelectorFromString 这个方法
      SEL aSelector = NSSelectorFromString(@"methodName");
      You use a selector created from a string when you want your code to send a message whose name you may not know until runtime.
    使用 selector

    你可以通过 performSelector: 或其它类似的方法来调用一个方法

    SEL aSelector = @selector(run);
    [aDog performSelector:aSelector];
    [anAthlete performSelector:aSelector];
    [aComputerSimulation performSelector:aSelector];
    

    (You use this technique in special situations, such as when you implement an object that uses the target-action design pattern. Normally, you simply invoke the method directly.)

    相关文章

      网友评论

          本文标题:What is Selector?

          本文链接:https://www.haomeiwen.com/subject/ipwyvttx.html