帮你了解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进行
修改。