objective-c block

Posted 阮減显

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了objective-c block相关的知识,希望对你有一定的参考价值。

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;
}

 

以上是关于objective-c block的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C(13)代码块---block

如何将这个 Objective-C 代码片段写入 Swift?

Objective-C基础笔记Block

Block循环引用问题(Objective-c)

Objective-C语法之代码块(block)的使用 (转载)

Objective-C基础之_ weak, _ strong , __ block