美文网首页
全局块(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

    三种类型的 block: 1、NSGlobalBlock:存储在程序的数据区域,在 block 内部没有引用任何外...

  • iOS block的类型

    block:栈块、堆块、全局块。 1.栈块 NSGlobalBlock 表示这个block是全局分配的。block...

  • Block(Closure) Tips

    使用 Block 的时候谨记以下几点:1.Block类型:全局块(Global Block)和堆块(Heap Bl...

  • 简单理解block的种类

    块(Block)分为三类: 栈块 堆块 全局块 1. 栈block 定义块的时候,其所占内存区域是分配在栈中的,而...

  • 2019-02-08

    栈块、堆块、全局块 (Block详解) 对于Block之前只是在用,对于栈,堆这块没有细入研究,今天抽空把”Eff...

  • 全局块、栈块及堆块

    栈块 void (^block)(); if(){ block = ^(){ NSLog(@"block a"...

  • Block 原理浅析

    Block 浅析 一、Block内存 (堆、栈、全局) 知识点: 栈区(stack)— 由编译器自动分配释放 ...

  • block 全局块 栈块及堆块

    栈区(block) 定义块的时候,其所占的内存区域是分配在栈中的.块只在定义它的那个范围内有效.例如,下面这段代码...

  • block 初探

    全局block, 栈block, 堆block

  • 理解Block

    一、block其实是有类型的, 且一共有3种类型, 全局块, 栈块, 堆块: 1.__NSGlobalBlock_...

网友评论

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

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