美文网首页
iOS Block使用

iOS Block使用

作者: ___________枫林晚 | 来源:发表于2021-11-10 20:04 被阅读0次

    定义

    \color{#ea1234}{returnType}(^\color{#127777}{name})(\color{#0a4589}{arguments});

    简单block的定义类似函数指针,差别在于用^ 代替函数指针的*

    例:

    //申明变量
    (id)(^block)(int code);
    //定义
    block = ^id(int code){
        NSLog(@"this is a block");
    };
    
    //调用
    block();
    

    大多数情况,我们定义的block都是内联方式

    dispatch_async(dispatch_get_global_queue(0,0),^{
    
    });
    

    block特点:

    1. 程序块可以在代码中以内联的方式定义。
    2. 程序块可以访问在创建她的范围内存的可用变量。

    修改block之外的变量

    默认情况下,在程序块中访问中访问的外部变量都是复制过去的,即写操作对外部变量不生效。为使其生效,可以添加上修饰符
    \color{#ee1234}{\_\_block}

    __block int a = 0;
    void (^foo)(void) = ^{
      a = 1;
    };
    foo();
    

    相关文章

      网友评论

          本文标题:iOS Block使用

          本文链接:https://www.haomeiwen.com/subject/mnqizltx.html