帮你了解Selector

来源:互联网 发布:大数据时代下载地址 编辑:程序博客网 时间:2024/04/28 22:36

帮你了解Selector

其实,Selector是objective-C/C++中消息机制的一个比较核心的内容。它可以与C++中的虚函数表相对应。关于这一点可以参阅《Cocoa入门——使用objective-C》第62、63页,关于消息运行机制的内容。

然后,Apple公司的官方文档《The Objective-C 2.0 Programming Language》中有Selector这一章节可以参考。不过个人感觉光看这一段还不太容易理解。

最后,在代码中用到了objective-C原生的运行时API,可以通过Apple官方的《Objective-C 2.0 runtime Reference》来获得详细信息。

就我个人来看,selector就好比是一个非常灵活的函数指针。但是它要比C语言中的函数指针更加灵活,因为它的值并不是某个函数的地址,而仅仅是方法名。这一点比C++中的指向类成员指针要灵活得多,尽管它只是对方法(操作)的引用而无法引用数据成员(属性)。
不过,概念上,IMP类型才是一个方法指针类型。

代码中引入了runtime.h头文件,需要包含系统路径。我机器上上的是:
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/include/objc
请根据不同版本的XCode进行修改。
原创粉丝点击