ios 块的使用(block)

来源:互联网 发布:asp.net json 编辑:程序博客网 时间:2024/05/22 23:31

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

这里写图片描述

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

2、内联block
这里写图片描述

这里写图片描述

3、block使用外部变量
这里写图片描述

4、block的循环引用问题
这里写图片描述

0 0