美文网首页
Block语法,Block类型变量,使用typedef声明Blo

Block语法,Block类型变量,使用typedef声明Blo

作者: JunfengsBlog | 来源:发表于2020-01-26 09:17 被阅读0次

1. Block语法

^ 返回值类型 (参数类型 参数名){

};
举个例子:

^ int (int count) {
            return count;
        };

注意点:

  1. 一定要严格按照^ 返回值类型 (参数类型 参数名)这样的顺序来写Block,否则编译会报错。
  2. 返回值类型不用加括号,参数要加括号。
  3. Block语法要加上 ;
  4. 返回值类型可以省略
^ (int count) {
            return count;
        };

这时候返回值类型由 return的类型决定。

2. Block类型变量

返回值 (^变量名)(参数类型 参数名)
举了例子:

int (^blk1) (int)

使用Block语法创建的Block给Block类型的变量赋值,举例如下:

int (^blk1) (int) = ^ int (int count) {
            return count;
        };

获取了Block类型的变量后的使用:

// 像函数一样直接传入参数,同时也可以声明一个和返回值类型相同的变量来接收Block执行后的返回值。
    int a = blk1(2);

注意点:

  1. 声明Block类型的变量时,返回值不需要加括号,变量名,参数都需要加括号,否则会编译报错

3. typedef声明Block类型变量

//        使用typedef声明一个Block类型变量
        typedef int (^blk_hjf) (int);
        
        blk_hjf blk = ^ int (int count) {
            return count;
        };
        
        int a = blk(2);
        NSLog(@"a = %d", a);

这样就可以解决在函数参数和返回值中使用Block类型变量时,记述方式太过复杂的的问题。

相关文章

  • Block语法,Block类型变量,使用typedef声明Blo

    1. Block语法 ^ 返回值类型 (参数类型 参数名){ };举个例子: 注意点: 一定要严格按照^ 返回值类...

  • Block

    Block基本语法 typedef声明,作Method参数使用 属性声明,使用copy修饰符 基本语法 声明Blo...

  • OC中的block回顾

    1.block声明 2.block的typedef 2.1 typedef的使用 2.2 声明block类型的使用...

  • block大全

    Block类型是一个C级别的语法和运行机制。block图.png实例: typedef使用 有参数有返回值的blo...

  • OC block使用及底层原理、循环引用、__weak、__st

    本文主要总结了:block的基本语法有/无返回值和形参typedef定义block类型变量访问,__block底层...

  • block

    block是变量;block类型是一个C级别的语法和运行机制; typedef 返回值类型(^新别名)(参数类型列...

  • Block 笔记

    Block表达式语法:^ 返回值类型 (参数列表) {表达式}声明Block类型变量语法:返回值类型 (^变量名)...

  • block总结

    block声明 block的定义方式(三种) block 调用 通过typedef声明一个block的类型 注意:...

  • 关于Block

    1.Block基本用法: block声明返回值(^block变量名)(参数)void(^block)(); blo...

  • block初窥

    一.block的简单使用 1.block声明 block变量的声明格式为: 返回值类型 (^block名字)(参数...

网友评论

      本文标题:Block语法,Block类型变量,使用typedef声明Blo

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