`
Xinaction
  • 浏览: 90239 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Objective-C 中的 selector

阅读更多

相对于c/c++对象语言,selector是obj-c中的一个特色类型,刚开始时我对她还不是很了解,因为最近在公司要做个iPhone的training,特地复习了一下语法,对selector有了更深的认识,“趁热”写下来,呵呵……
简单地理解,selector就是一个类型,这个类型的变量代表一个objectiv-c类的函数。如果比较一下它的背景,也许会有豁然开朗的感觉。
对C++来说,代码在编译前都必须明确所有函数调用的类型,什么样的对象能调用什么样的函数都在这个时候确定。在代码运行时,想要改变函数调用的形式是不可能的。而纯粹的对象语言看重程序应用的灵活性,在理想世界中,一个纯粹是由对象组成的世界,一切在运行时应该都是可以根据环境的变化而改变的,包括对对象方法的调用的形式(真是醍醐灌顶啊~~)。于是,selector概念的出现就不难理解了。通过它,在运行时我们可以动态地改变消息的接受者,也可以动态地改变消息类型(可以理解为动态改变调用的方法)。iPhone中的Target-Action设计模式就是最好的应用。
如此看来,selector在obj-c的动态性方面着实发挥了重要的作用。你认为呢?

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics