美文网首页
全局块(global block)、栈块(stack block

全局块(global block)、栈块(stack block

作者: ReidWang | 来源:发表于2016-12-09 17:37 被阅读159次

    三种类型的 block:

    1、NSGlobalBlock:存储在程序的数据区域,在 block 内部没有引用任何外部变量。

    2、NSStackBlock:存储在栈上,在 block 内部引用外部变量。在 MRC 下,栈块在当函数退出的时候,该空间会被回收,因此如果再调用该 block 会导致 crash,通过拷贝该栈块,可以解决该问题。在 ARC 模式下,生成的 block 也是 栈块,只是当赋值给 strong 对象时,系统会主动对其进行 copy。

    3、NSMallocBlock:存储在堆上的 block。

    相关文章

      网友评论

          本文标题:全局块(global block)、栈块(stack block

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