美文网首页
浅谈OC中block

浅谈OC中block

作者: 萤火驻守心间 | 来源:发表于2022-06-01 17:18 被阅读0次

    Block的循环引用:
    block强引用self,self强引用block。解决方案:对self进行弱引用。

    内部修改外部变量:
    block不允许修改外部变量的值,这里的外部变量指的是栈中指针的内存地址。__block的作用是只要观察到变量被block使用,就将外部变量在栈中的内存地址放到堆中。

    三种block:
    1、NSGlobalBlock(全局):没有访问 auto变量 的block ,(.data区)数据区,一般存放全局变量, __NSGlobalBlock存放在这里
    2、NSStackBlock(栈block):访问了auto变量 的block ,存放在栈区
    3、NSMallocBlock(堆block):当一个__NSStackBlock调用了copy操作,返回的就是一个__NSMallocBlock,存放在堆区

    相关文章

      网友评论

          本文标题:浅谈OC中block

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