1、block代码中可读取外部变量的值,如果外部变量被__block 修饰(两条下划线)的话,还能修改 例子如下:
int m = 10;
__block int n=10;
void (^sum) ( int,int ) = ^(int a, int b){
NSLog(@" %i ",m);
n=11;
NSLog(@" %i ",n);
return a+b;
}
超级便捷的程序代码,任何时候都能用。最屌的是可以不建立代理协议而实现代理。会掉实现
Button *btn =[ [Button alloc] init] ;
btn.block = ^(Button *btn){
NSLog(@"按钮 %@ 被按下",btn);
}