前言
ReturnType
:你所想要返回的数据类型;ParameterType
:你所要传递的参数类型;parameterName
:你所要传递的参数名;blockName
:你所构造的 block 名。
(另外参数可以传入多个)
作为变量
1 | ReturnType (^blockName)(ParameterType) = ^ReturnType (ParameterType parameterName) { |
作为属性
1 | @property (copy) ReturnType (^blockName) (ParameterType); |
作为方法定义参数
1 | - (void)yourMethod:(ReturnType (^)(ParameterType))blockName; |
作为方法传入参数
1 | [someObject doSomethingWithBlock: ^ReturnType (ParameterType parameterName) { |
匿名 Block
1 | ^ReturnType (ParameterType parameterName) { |
使用 typedef
1 | typedef ReturnType (^blockName)(ParameterType); |
内联 Block
1 | ^ReturnType (ParameterType parameterName) { |
递归 Block
1 | __block ReturnType (^blockName)(ParameterType) = [^ReturnType (ParameterType parameterName) { |
作为返回值
1 | - (ReturnType(^)(ParameterType))methodName { |
在 swift 中(闭包)
1 | var blockName = { (parameterName: ParameterType) -> ReturnType in |