本文介绍: Block (块),封装了函数调用以及调用环境的 OC 对象,Objective-C闭包(可以在内部访问外部的值),相当于C语言的函数指针,把一个函数写在一个函数内部,而OC并没有函数(方法)嵌套这一语法作用域的原因,全局变量哪里都可以直接访问,所以不用捕获;局部变量,外部不能直接访问,所以需要捕获;auto 类型的局部变量可能会销毁,其内存会消失,block 将来执行代码的时候不可能再去访问那块内存,所以捕获其值;static 变量会一直保存在内存中, 所以捕获其地址即可
Block的基本使用
什么是Block?
Block的声明
格式: 返回值 (^block名称)(形参列表)
^
代表块的符号
Block的实现
实现部分的返回值可以省略,像这样:
实现部分的返回值int
同样可以省略
Block的调用
现在已声明的blockName
代表一个块,那么调用这个块既可以通过blockName(7, 12);
,也可以这样:
Block作为形参使用
Block作为属性使用
给Block起别名
Block的copy
Block的捕获机制
auto类型的局部变量
__block浅析
static类型的局部变量
全局变量
其他问题
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。