iOS 之选择器(Selector)
2015-07-28 18:10
211 查看
1 前言
本文是一篇关于选择器(Selector)的文章,Selector可以理解为一个方法名,具体见下文。英文原文:/article/1342301.html
转载请注明出处: http://blog.csdn.net/developer_zhang
2 详述
Selector是一个对象中用来选择方法来执行的名字,或者是当源代码编译时候用来替换名字的唯一的标示。Selector自己并不能做任何事情。它简单的标示了一个方法。使得selector方法名称不同于普通字符串的唯一的事情是编译器确定selectors是独特的。使得selector有用的是(与运行时结合)它扮演着类似于一个动态函数指针,对于一个已经给与的名字,自动指向类所使用的适用的方法的实现。假设我们有一个run方法的selector,并且类Dog,Athlete和ComputerSimulation(每个类都实现了run方法)。Selector能够被每一个类的实例所使用并且调用它的run方法--设置方法的实现可能是互不相同的。
2.1 如何获得Selector
被编译的selectors是SEL类型的。有两种方式获得selector:·在编译期,我们使用编译标示@selector
SEL aSelector = @selector(methodName);
·在运行时,我们使用NSSelectorFromString方法,字符串是方法名:
SEL aSelector = NSSelectorFromString(@"methodName");
当我们想要我们的代码发送一个知道运行时我们才知道名字的消息的时候,我们使用selector创建一个字符串。
2.2 如何使用Selector
我们能够调用以selector为参数的performSelector:的方法并且其他类似的方法来使用:SEL aSelector = @selector(run); [aDog performSelector:aSelector]; [anAthlete performSelector:aSelector]; [aComputerSimulation performSelector:aSelector];
(我们使用这个技术在特殊的情况下,例如我们实现了一个使用target-action设计模式的对象。通常,我们直接的简单的调用该方法。)
3 结语
以上是所有内容,希望对大家有所帮助。
相关文章推荐
- iOS 将崩溃Log日志重定向输出到文件中保存
- Xcode 配置文件 xcconfig 使用实践
- iOS中ARC内部原理
- iOS正则表达式(二)
- IOS:Warning: Attempt to dismiss from view controller <xxxxxxxxxController: 0x15bd67f0> while a prese
- iOS省市区字典封装
- IOS编程常用字体
- iOS事件机制(一)
- iOS- xib(nib) 的重用(在有些情况下有利于加快项目功能的实现)
- [iOS]调用layoutSubViews方法(有的时候为啥会调用2遍)
- iOS 应用程序的生命周期详解
- iOS中IMP指针的运用
- IOS- 得到系统版本
- iOS多态
- iOS开发使用nib进行界面设计并跳转
- iOS—修改AFNetworking源文件可接收text/plain的方法
- IOS-写文件到本地
- [iOS]NSString到底使用Copy还是使用Strong属性,有什么区别
- iOS 中如何预览HTML中的图片
- iOS中的KVC