return_type (^block_name)(param_type, param_type, ...)
^(int number1, int number2){ return number1 + number2 };
如果将block的定义和声明放到一起,就得到下面的一个语句:
int (^add)(int,int) = ^(int number1, int number2){
return number1+number2;
};
我们可以这样使用block:
int resultFromBlock = add(2,2);
[UIView animateWithDuration:0.5
animations:^ {
[customerImageView setAlpha:1.0f];
[customerImageView setCenter:CGPointMake(100,100)];
}
completion:^(BOOL finished) {
[customerImageView removeFromSuperview];
}];
block那么难理解和读,为什么还要用它,使用block有什么好处呢?如下几点希望能够帮组大家理解:
1. 如果大家不使用block来实现几个动画一起的话,就会发现代码显得很繁琐,而且可能需要再单独写一个回调函数,但是使用了block,就完全避免使用beginAnimations/commitAnimations;
2. 代码简单了,不用在几个地方维护开启动画和回调的代码;
3. 貌似苹果推荐我们这样用block。