Objective-C Runtime IV 【使用隐藏的参数】
2012-06-14 10:41
218 查看
使用隐藏的参数
当objc_msgSend找到方法对应的实现时,它将直接调用该方法实现,并将消息中所有的参数都传递给方法实现,同时,它还将传递两个隐藏的参数:
接收消息的对象
方法选标
这些参数帮助方法实现获得了消息表达式的信息。它们被认为是”隐藏“的是因为它们并没有在定义方法的源代码中声明,而是在代码编译时是插入方法的实现中的。
尽管这些参数没有被显示声明,但在源代码中仍然可以引用它们(就象可以引用消息接收者对象的实例变量一样)。在方法中可以通过
self来引用消息接收者对象,通过选标
_cmd来引用方法本身。在下面的例子中,
_cmd指的是
strange方法,
self指的收到
strange消息的对象。
- strange |
{ |
id target = getTheReceiver(); |
SEL method = getTheMethod(); |
if ( target == self || method == _cmd ) |
return nil; |
return [target performSelector:method]; |
} |
self更有用一些。实际上,它是在方法实现中访问消息接收者对象的实例变量的途径。
相关文章推荐
- Objective-c学习笔记(三)oc 多输入参数的方法及协议的使用及变量
- [Runtime]-消息机制调用多个参数以及何时使用Runtime
- Objective-C可变参数方法的定义和使用
- JavaScript表单使用隐藏控件为表单添加的参数
- objective-c中的消息使用有名称的参数
- iOS:在objective-c 使用可变参数
- 使用Objective-C的Runtime
- objective-c 方法带参数的使用
- Objective-C 中的Runtime的使用
- 【Objective-C Runtime动态加载】---动态创建类Class 动态创建类Class,动态添加Class成员变量与成员函数,动态变量赋值与取值,动态函数调用等方法 a.使用objc_
- 使用runtime机制隐藏IOS工程中所有的导航栏返回按钮标题
- objective-C block作为参数使用
- glusterfs隐藏参数-使用详解
- Objective-C中使用不定参数个数的方法调用
- objective-c(六)文件分离,合成存取方法,方法多参数,局部变量,self使用(未完成)
- Objective-C Runtime使用之全局字体替换为第三方字体(iOS)
- 使用可变参数批量设置view显示,隐藏,点击事件
- 隐藏变量的使用-前后台参数的传递控制。
- ios学习--Objective-C runtime的使用
- 使用表单post方式提交到某个servlet,请求参数不会在地址栏显示,达到隐藏请求参数的目的