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;
}
上一篇 下一篇

猜你喜欢

热点阅读