一、概述
Block是C语言的扩充功能。可以用一句话来表示Block: 带有自动变量的匿名函数。
匿名函数:没有函数名的函数,一对 {} 包裹的内容是匿名函数的作用域。
自动变量:栈上声明的变量(不是静态变量和全局变量),是不可以在这个栈内声明的匿名函数中使用,但在Block中却可以。
虽然使用Block不用声明类,但是Block提供了类似OC的类一样可以通过成员变量来保存作用域外变量值的方法,那些在Block的一对 {} 里使用到但却是在 {} 作用域以外声明的变量,就是Block截获的自动变量。
关于block的语法,请戳这里→ block的语法