- selector是方法名
- message包括selector和方法的参数
- method包括selector和方法的具体实现
**Selector ** Selector 就是method的方法名称.我们非常熟悉的Selector有: alloc
,init
, release
, dictionaryWithObjectsAndKeys:
, setObject:forKey:
等. 注意冒号:
是选择器的一部分,这就是我们如何识别方法需要的参数. (虽然这是极其罕见的), 你可以定义一个这样的selector: doWork : : :
这个方法带有三个参数, 可以这样调用 [obj doWork :arg1 :arg2 :arg3]. 之前没有要求 在每个选择器组件之前有字母.所以说 这是极其罕见的, 你不会发现它在Cocoa框架中使用。你可以直接使用选择器在 Cocoa. Selector 有个 SEL:
类型
SEL aSelector = @selector(doSomething:)
SEL aSelector = NSSelectorFromString(@"doSomething:");
** Message ** message 是选择器和你发送的参数。比如[dictionary setObject:obj forKey:key]
, 在这里 "message"就是选择器 selector setObject:forKey
加上参数 obj
和 key
.Messages消息可以封装在一个NSInvocation
对象后调用。消息被发送到一个接收器。(即“收到”信息的对象)。
** Method** method
就是一个选择器(selector)和一个实现( implementation)(和附带的数据)组成。实现( implementation)实际实际上就是一个代码块;它是一个函数指针(IMP
)。一个实际的method
可以使用一个方法检索到的内部结构(通过runtime可收回)。