Objective-C runtime之消息相关概念(二)
四、runtime中的消息
1、什么是消息
进入今天的正题之前,先来说说跟message息息相关的几个概念
①message(消息)
message的具体定义很难说,因为并没有真正的代码描述,简单的讲message 是一种抽象,包括了函数名+参数列表,他并没有实际的实体存在。
②method(方法)
method是真正的存在的代码。如:- (int)meaning { return 42; }
③selector(方法选择器)
selector 通过SEL类型存在,描述一个特定的method 或者说 message。在实际编程中,可以通过selector进行检索方法等操作。
2、两个跟消息相关的概念
①SEL
SEL又叫方法选择器,这到底是个什么玩意呢?在objc.h中是这样定义的:
objc_msgSend(receiver, selector)实际上,同objc_msgSend方法类似的还有几个:
objc_msgSend_stret(返回值是结构体)
objc_msgSend_fpret(返回值是浮点型)
objc_msgSendSuper(调用父类方法)
objc_msgSendSuper_stret(调用父类方法,返回值是结构体)
它们的作用都是类似的,为了简单起见,后续介绍消息和消息传递机制都以objc_msgSend方法为例。
-------------未完待续-------------