从替换objc类成员方法观察成员方法寻址
来源:互联网 发布:淘宝网怎么做推广 编辑:程序博客网 时间:2024/06/07 16:11
objc的动态特性真是很好玩
cocoadev上有一篇关于替换成员方法的文章,可以将一个成员方法替换成新的实现
原文
http://www.cocoadev.com/index.pl?MethodSwizzling
这里又观察到一个现象
在写新实现的时候,调用的方法名称是新的方法名称
@implementation Foo(specialfooBar)
// returns the login name of the current user plus some other junk- (NSString *)myfooBar{ return [[self myfooBar] stringByAppendingString:@", bigtime luser"];}@end
看起来就像一个死循环的递归.
在实现替换后,这个死循环消失了.
这说明什么呢?
编译的时候,没有计算myfooBar的地址.如果是编译时绑定的,那么myfooBar将继续指向自己.一直是个死循环.
这里有个文章更详细的介绍
http://cocoasamurai.blogspot.com/2010/01/understanding-objective-c-runtime.html
- 从替换objc类成员方法观察成员方法寻址
- C#类成员-方法
- 类 成员访问方法
- mysqli_result类--成员方法
- 成员方法
- 成员方法
- 成员方法
- 成员方法
- 类中的成员属性和成员方法
- 类的成员之二:成员方法
- 类成员方法如何调用类成员属性和方法
- 类成员方法如何调用类成员属性和方法
- python中的静态成员方法 和 类成员方法
- 类的组成:成员变量 成员方法 构造方法
- Clipboard 剪切板 成员,类,方法
- Mysqli类中的成员方法
- C#类成员—方法
- String类成员方法实现
- 存储过程相关
- Ubuntu下玩转VI--在命令行下编辑文件
- CentOS平台OpenVPN架设
- 上任后第一贴--Nginx安全配置
- linux 模块层叠技术和多个ko的编译
- 从替换objc类成员方法观察成员方法寻址
- hdu 1698 Just a Hook 线段树
- 安装Ubuntu
- android用户界面编程技巧——如何使用Adapter
- asp中如何上传文件到数据库中
- 简单的Makefile
- burstNet vps试用
- Linux硬件信息查看
- 远程下载SQL