Objective-C 中的 selector

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值