美文网首页iOS面试
终于理解weakSelf和strongSelf了

终于理解weakSelf和strongSelf了

作者: AlwaysBlue | 来源:发表于2020-05-11 15:23 被阅读0次

    https://www.jianshu.com/p/79d31eb822db
    https://www.jianshu.com/p/d68d5bb431c8
    https://www.jianshu.com/p/701da54bd78c

    // MRC

    xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc main.m

    // ARC

    xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc -fobjc-arc -fobjc-runtime=ios-8.0.0 main.m

    block内的__strong是会对对象retain +1的

    这个问题的关键是理解:
    1.__strong typeof(weakPerson) strongPerson = weakPerson;是可以对弱引用的对象retain+1的。
    2.只有产生了循环引用才会内部不会释放     只要保证block内使用的strong对象引用计数不是0即可。

    该例子并没有循环引用,但是在block内对self+1了

    3.不用担心引用循环引用而产生内存泄漏,是因为strongPerson是个局部变量,block执行完毕就会被销毁,循环被破坏。

    相关文章

      网友评论

        本文标题:终于理解weakSelf和strongSelf了

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