美文网首页
alloc探索思路

alloc探索思路

作者: 扫地僧练级 | 来源:发表于2020-11-18 16:44 被阅读0次
    先看一下下面三行代码
    ZKCPerson *p1 = [ZKCPerson alloc];
    ZKCPerson *p2 = [p1 init];
    ZKCPerson *p3 = [p1 init];
    
    思考一下:p1 p2 p3是不是同一个对象?

    debug看一看打印结果:


    20201118153406.jpg

    结果:是一个

    再思考一个问题:这三个指针地址是不是一样的呢?看下打印结果:
    20201118153626.jpg
    结果:不是一个

    思考一个问题:alloc怎么创建的对象 alloc和init分别做了什么?

    是不是瞬间想看看alloc是怎么实现的呢?不着急,接下来介绍三种常用的方法:

    • 直接代码下断点(连真机,x86模拟器是不行的)(方法:按住ctl进入断点)看到的是这个:


      20201118155751.jpg

    看见了objc_alloc。。。sure 就是这个,继续下去。。。


    20201118160025.jpg

    哈,看到了在这个库libobjc.A.dylib

    • Xcode左下角找到符号断点


      20201118160631.jpg
      20201118161531.jpg
      20201118161703.jpg

      哈,也看到了在这个库libobjc.A.dylib

    • 汇编


      20201118162053.jpg
      20201118162319.jpg

      继续方法1的ctl+in 最后也能看到在这个库libobjc.A.dylib

    未完待续。。。先关注一波

    相关文章

      网友评论

          本文标题:alloc探索思路

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