OC 中的 Block
文章目录
OC 中 block 的严格定义,语法,格式,调用
- 是C语言的功能,iOS4.0之后可以使用。和其他动态语言的闭包(closure)类似,和 swift 中的 closure 闭包几乎一样。
- 严格定义:块对象就是把可执行的代码和代码中的可以访问的变量“封装”起来,之后在某个时间点处理的包。
- Block 的作用:
- 可以作为函数/方法的参数
- 可以作为函数/方法的返回对象
- 明确三个 Block 术语
- Block 声明(Block declaration)
-
通用词:Block (变量)声明
-
- Block 定义(Block literal:块句法)
-
通用词:Block (对象)定义
-
- Block 调用:执行的 Block 体(Block body)中的逻辑
- Block 声明(Block declaration)
- Block 声明的语法:
return_type(^block_name)(param_type,param_type...)
return_type
:返回值类型block_name
:Block 变量名字param_type
:参数类型- 例子:
int(^blockName)(int)
- Block 定义的语法:
^(param_type param_name,param_type param_name...){block body}
param_type
:参数类型param_name
:参数的名字- 例子:
^(int index){printf("%d\n",index);return index * 2};
- 结合声明和定义
int(^blockName)(int) = ^(int index){printf("%d\n",index);return index * 2;};
未完待续。。。
文章作者 Rango
上次更新 2016-05-23