// AppDelegate.m
- (int)test:(int (^)(int, int))block
{
return block(10,20);
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
__block int m = 8;//代码块里修改局部变量需要__block,否则只可读(因为它是一个常量副本)
int (^b)(int,int);
b = ^int(int x, int y){
m = 10;
//NSLog(@"m value:%d",m);//如果去掉__block m的值为第一次m赋值,因为m就是常数20
return x * y;
};
m = 20;
NSLog(@"test return:%d",[self test:b]);
NSLog(@"m value:%d",m);
return YES;
}