Block,代码块,^符号是block的语法标记。
比如说,一个block的参数列表是一个UIView,返回值是个CGFloat,block名称是testBlock
可以定义为 CGFloat (^testBlock) (UIView* view); //^符号将testBlock声明为一个block对象
另外一种定义方法是用typedef,
例如定义 typedef CGFloat(^MyBlock)(UIView* view)
MyBlock testBlock;
上述block的类型为 CGFloat(^)(UIView*)
看block类型分两步,第一看参数列表,第二看返回值
给block赋值:
例如给testBlock赋值,
testBlock = ^CGFloat(UIView*view) {
return view.frame.size.width;
}
或者
testBlock = ^(UIView *view){
return view.frame.size.width;
}
返回值可以不写,但如果有返回值的话block函数体中一定要写return语句,不写return语句的话默认返回值是void