1.Block是什么?
Block是一个C级别的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,可以看成一个语句块或者更多时候看成一个匿名函数。
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations NS_AVAILABLE_IOS(4_0);
[ UIView animateWithDuration:10 animations:^{
NSLog(@"%@,",@"block");
}];
2.Block在什么情况下使用?
Block除了能够定义参数列表、返回类型外,还能够获取被定义时的词法范围内的状态(比如局部变量),并且在一定条件下(比如使用__block变量)能够修改这些状态。此外,这些可修改的状态在相同词法范围内的多个block之间是共享的,即便出了该词法范围(比如栈展开,出了作用域),仍可以继续共享或者修改这些状态。通常来说,block都是一些简短代码片段的封装,适用作工作单元,通常用来做并发任务、遍历、以及回调。
3.Block如何申明?(对比于c语言中的函数申明)
4.如何调用Block?(类比于函数指针)
int (*CFunc) (int a) //函数调用
int result = CFunc(10);
int (^BFunc) (int a) //Block调用
int result = BFunc(10);
5.Block编程实例(实现回调)
#import <UIKit/UIKit.h>
/**
* 点击按钮的回调
*
* @param<