http://www.code4app.com/thread-9849-1-1.html
runtime的资料网上有很多了,部分有些晦涩难懂,我通过自己的学习方法总结一遍,主要讲一些常用的方法功能,以实用为主,我觉得用到印象才是最深刻的。另外runtime的知识还有很多,想要了解更多可以看我翻译的官方文档(有点枯燥)
什么是runtime?
runtime 是 OC底层的一套C语言的API(引入 <objc/runtime.h> 或<objc/message.h>),编译器最终都会将OC代码转化为运行时代码,通过终端命令编译.m 文件:clang -rewrite-objc xxx.m可以看到编译后的xxx.cpp(C++文件)。
比如我们创建了一个对象 [[NSObject alloc]init],最终被转换为几万行代码。开这个帖子记录一下看到的一些比较好的runtime的文章。
1、详解Runtime运行时机制
http://www.code4app.com/blog-721976-204.html
(亮点:本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机)
2、OC实用的runtime总结
http://www.code4app.com/home.php?mod=space&uid=721976&do=blog&quickforward=1&id=205
(亮点:通过自己的学习方法总结一遍,主要讲一些常用的方法功能,以实用为主)
3、DEMO 按钮点击, 利用runtime hook 实现iOS防止按钮连续响应点击
http://www.code4app.com/forum.php?mod=viewthread&tid=7271&extra=page%3D1%26filter%3Dsortid%26sortid%3D1
(利用runtime hook 实现iOS防止按钮连续响应点击 可以设置时间间隔,拖进工程立即生效)
4、DEMO runtime 详解
http://www.code4app.com/forum.php?mod=viewthread&tid=8241&extra=page%3D1%26filter%3Dsortid%26sortid%3D1
5、DEMO iOS Runtime 实践
http://www.code4app.com/forum.php?mod=viewthread&tid=7638&extra=page%3D1%26filter%3Dsortid%26sortid%3D1
(亮点:通过DEMO方式实践iOS中的黑魔法runtime)
6、学习 runtime的简单项目
http://www.code4app.com/forum.php?mod=viewthread&tid=7201&extra=page%3D1%26filter%3Dsortid%26sortid%3D1
7、根据规则跳转到指定的界面(runtime实用篇一)
http://www.code4app.com/forum.php?mod=viewthread&tid=10131&extra=page%3D1%26filter%3Dsortid%26sortid%3D1