您的位置:首页 > 移动开发 > IOS开发

OC 中方法名为什么被称作选择器(selector)?

2017-03-09 16:12 405 查看
函数调用和消息的一个关键区别是,函数和它的参数是在编译时绑定在一起的,而消息和接收者直到程序运行时,消息被发送才实现这种绑定。因此,响应一个消息的具体方法是在运行时才决定的,而不是在代码被编译的时候。消息启动哪个方法取决于消息的接收者,不同的接收者可能有同名的不同方法实体,这就是多态。编译器要为一个消息找到正确的方法实体,它必须知道这个接收者属于什么对象,也就是它属于什么类。这是一个对象在运行时接收到消息时能够获取的信息,但这些信息不是可以通过代码中的类型声明就能获得的,方法实体的选择发生在运行时。当消息发出之后,运行时环境会查看接收者以及它的和消息同名的方法,它通过名字匹配找到这个接收者的方法,并调用它,并传递一个指向接收者实例变量的指针。消息中的方法名用来“选择”接收者的方法,正是由于这个原因,消息中的方法名常被称作选择器(selector)。方法和消息的动态绑定,以及多态之间的协调合作,给了面向对象编程丰富的灵活性和强大的功能,因为每个对象都可以有一个方法的自己的版本,但仅仅是接收相同消息的对象不同,而这些都可以在程序运行时完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS OC