OC中message,method,selector之间的关系

简介: selector是方法名message包括selector和方法的参数method包括selector和方法的具体实现**Selector ** Selector 就是method的方法名称.
  • 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 加上参数 objkey.Messages消息可以封装在一个NSInvocation对象后调用。消息被发送到一个接收器。(即“收到”信息的对象)。

** Method** method
就是一个选择器(selector)和一个实现( implementation)(和附带的数据)组成。实现( implementation)实际实际上就是一个代码块;它是一个函数指针(IMP)。一个实际的method可以使用一个方法检索到的内部结构(通过runtime可收回)。

目录
相关文章
|
7月前
call()与apply()的作用与区别?
call()与apply()的作用与区别?
|
8月前
call()与apply()的作用与区别
call()与apply()的作用与区别
66 1
|
Serverless
函数计算中,测试代码“failed to match interface”
函数计算中,测试代码“failed to match interface”
128 0
java定义一个变量后调用该变量提示Unknown class
java定义一个变量后调用该变量提示Unknown class
|
JavaScript 前端开发
call和apply与this的关系
call和apply与this的关系
50 0
|
JavaScript 前端开发
Function(函数)与Object(对象)的关系
Function(函数)与Object(对象)的关系
93 0
|
前端开发
前端面试那些事【dt/dd、audio、onerror、标签、类、ID选择器、伪类选择器......
前端面试那些事【dt/dd、audio、onerror、标签、类、ID选择器、伪类选择器......
154 0
前端面试那些事【dt/dd、audio、onerror、标签、类、ID选择器、伪类选择器......
element-ui中的Select选择器中remote-method方法带自定义参数
element-ui中的Select选择器中remote-method方法带自定义参数
|
缓存 iOS开发
Runtime系列:Class的结构【03】
Runtime系列:Class的结构
133 0
Runtime系列:Class的结构【03】
重构——32以State/Strategy取代类型码(Replace Type Code with State/Strategy)
以State/Strategy取代类型码(Replace Type Code with State/Strategy):你有一个类型码,它会影响到类的行为,但是你无法通过继承手法消除它;以状态对象取代类型码
1539 0

热门文章

最新文章