美文网首页
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