void foo(int (^blkParam)()){
NSLog(@"foo param %d",blkParam());
}
void run()
{
//定义 返回值类型 (^block的名称)(参数类型) = ^返回值类型(参数) {...};
void (^blk)(void) = ^{
NSLog(@"aaaaa");
};
//调用
blk();
//定义和调用一起
int aa = ^(NSString *var){
NSLog(@"sssss %@",var);
return 88;
}(@"trrrr");
NSLog(@"aaa = %d",aa);
int (^blk1)(void) = ^{
NSLog(@"bbbbb");
return 88888;
};
//作为参数,先定义
foo(blk1);
//作为参数,不先定义,直接写
foo(^{NSLog(@"ddddd");return 9999;});
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
//function_1(29,22.3);
run();
}
return 0;
}
原文:http://www.cnblogs.com/ruanjianxian/p/7421089.html