美文网首页
runtime学习笔记

runtime学习笔记

作者: 知行合一认知升级 | 来源:发表于2020-03-14 13:15 被阅读0次

iOS进阶就不能仅仅停留在各种控件的使用,要知道其底层原因。
oc作为一门动态语言,其很多方法都建立在运行时之上,因此runtime的学习对于了解底层至关重要。
工欲善其器,必先利其器。搭建一套学习环境十分重要。

一 代码环境搭建

macOS的runtime代码开源了,

1.1 手动搭建

苹果开源的代码,今天查看最新的是 objc4-779.1

需要配置的环境较多,喜欢折腾的可以试试,网上教程也多。
传送

1.2现成的环境

这位前辈搭建好了,在macOS 10.15 Catalina,Xcode 11.0 环境如图所示亲测可用。
传送

image.png

二 调试工具, DLIntrospection的使用

对于调试,使用分类了解更多信息。
拓展两个方法:
NSObject (DLIntrospection) 和 NSString (DLIntrospection)

下载地址

举例:kvo的学习

想看一下kvo底层,通过instanceMethods查看动态类重写了什么方法。

Screen Shot 2020-03-14 at 13.27.18.png

看看NSObject (DLIntrospection),图中可以看出class_copyMethodList将其所有重写的方法重新打印了出来


Screen Shot 2020-03-14 at 13.36.15.png

相关文章

网友评论

      本文标题:runtime学习笔记

      本文链接:https://www.haomeiwen.com/subject/ssivshtx.html