Block的存储形式

MRC下有三种形式:

NSConcreteGlobalBlock

NSConcreteStackBlock

NSConcreteMallocBlock

NSConcreteGlobalBlock:没有引用局部变量的block

Block的存储形式_第1张图片
NSConcreteGlobalBlock

NSConcreteStackBlock:就是引用了局部变量或者全局变量的block

Block的存储形式_第2张图片
NSConcreteStackBlock

NSConcreteMallocBlock:

在非ARC下,我们一般不手动创建NSMallocBlock,我们把从栈区复制(copy)过来的block称为堆区block。

Block的存储形式_第3张图片
NSConcreteMallocBlock

ARC下有两种形式:

NSConcreteGlobalBlock

NSConcreteMallocBlock

没有引用局部变量的叫NSConcreteGlobalBlock;

其他的为NSConcreteMallocBlock。

你可能感兴趣的:(Block的存储形式)