ios 块的使用(block)

一、block的类型和内存管理
1、根据Block在内存中的位置分为三种类型NSGlobalBlock,NSStackBlock, NSMallocBlock。
NSGlobalBlock:类似函数,位于text段;
NSStackBlock:位于栈内存,函数返回后Block将无效; NSMallocBlock:位于堆内存
二、关于blcok的声明
这里写图片描述

这里写图片描述

在项目工程里面,我们常坐这样的声明方式。
注意: (ARC)用合成存取器去声明一个block,必须要用copy修饰,那么copy有什么作用呢?答案是:Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的。
三、关于block的使用
1、单独使用block
ios 块的使用(block)_第1张图片

2、内联block
ios 块的使用(block)_第2张图片

ios 块的使用(block)_第3张图片

3、block使用外部变量
ios 块的使用(block)_第4张图片

4、block的循环引用问题
ios 块的使用(block)_第5张图片

你可能感兴趣的:(block,copy,块)