这是我参与「第四届青训营 」笔记创作活动的第3天
闭包基础
闭包就是能够读取其他函数内部变量的函数。只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。
block
returnType (^blockName)(parameters) = ^returnType(parameters){};
Block三种类型:
- __NSGlobalBlock
- __NSStackBlock
- __NSMallocBlock
| 类型 | 描述 | 环境 |
|---|---|---|
| __NSGlobalBlock | 全局Block,保存在数据区 | 定义在全局区或者没有访问自动局部变量 |
| __NSStackBlock | 栈Block,保存在栈区 | 访问了自动局部变量 |
| __NSMallocBlock | 堆Block,保存在堆区 | __NSMallocBlock调用了copy |
Block的应用
- 数组遍历
- 传递数据
- 链式调用
- 异步操作