block 作为函数参数
2016-09-20 本文已影响0人
zhouios
// 将 block 作为函数参数
// 1, 如何定义函数参数
//void func( void (^myblock)() ) {
// // 此时已经定义了一个无参数无返回值的 block 作为函数参数
// // 变量的名字就是 myblock
//}
// 2, 如何使用函数调用block
//void func( void (^myblock)() ) {
// myblock();
//}
// 写一个函数, 将一个 无参数, 无返回值的 block 传入函数, 让函数调用
// 写一个函数, 将一个 有参数, 有返回值的 block 传入函数, 让函数调用
// 两无 void (^myblock)()
void func1( void (^myblock)() ) {
myblock();
}
// 两有 int (^myblock)(int, int)
int func2( int (^myblock)(int a, int b), int num1, int num2 ) {
return myblock(num1, num2);
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 定义一个 block
// void (^myblock)() = ^{ NSLog(@"调用了...."); };
// func1(myblock);
//
//
// func1(^{
// NSLog(@"嘿嘿嘿...");
// });
int res = func2(^int(int a, int b) {
return a + b;
}, 10, 20);
NSLog(@"%d", res);
// func2(^int(int a, int b) {
// <#code#>
// }, <#int num1#>, <#int num2#>)
}
return 0;
}