闭包与Objective- C block |青训营笔记

98 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第3天

闭包基础

闭包就是能够读取其他函数内部变量的函数。只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。

block

returnType (^blockName)(parameters) = ^returnType(parameters){};

Block三种类型:

  • __NSGlobalBlock
  • __NSStackBlock
  • __NSMallocBlock
类型描述环境
__NSGlobalBlock全局Block,保存在数据区定义在全局区或者没有访问自动局部变量
__NSStackBlock栈Block,保存在栈区访问了自动局部变量
__NSMallocBlock堆Block,保存在堆区__NSMallocBlock调用了copy

Block的应用

  • 数组遍历
  • 传递数据
  • 链式调用
  • 异步操作