写点什么

iOS 中的 Block(初步认识)

作者:NewBoy
  • 2022 年 7 月 15 日
  • 本文字数:541 字

    阅读完需:约 2 分钟

什么是 Block(快速实现直接输入 inlink)

block是一种特殊的数据类型



Block 的作用

  • 用于保存一段代码,可以在恰当的时间取出来调用

  • 功能类似于函数和方法



Block 的格式

返回值(^block变量名)(形参列表) =  ^( 形参列表){
};
复制代码


  • 无参数无返回值


    void (^sunBlock)();        sunBlock = ^{            NSLog(@"sunBlock");        };        sunBlock();
复制代码


  • 有参数无返回值


    void(^sunBlock)(int,int);    sunBlock = ^(int value1,int value2){        NSLog(@"%d",value1 + value2);    };    sunBlock(10,20);
复制代码


  • 有参数有返回值


    int (^sunBlock)(int,int);    sunBlock = ^(int value1,int value2){        return value1 + value2;    };    NSLog(@"%d",sunBlock(10,20));
复制代码



typedef 和 Block

利用typedefblock起别名,和指向函数的指针一样,block变量的名称就是别名


typedef int (^calculateBlock)(int,int);int main(int argc, const char * argv[]) {        calculateBlock sumBlock  = ^(int value1,int value2){        return value1 + value2;    };    NSLog(@"%d",sumBlock(20,10));            calculateBlock minusBlock  = ^(int value1,int value2){        return value1 - value2;    };    NSLog(@"%d",minusBlock(20,10));}
复制代码


发布于: 刚刚阅读数: 3
用户头像

NewBoy

关注

虽不年少,艳阳高照 2019.04.10 加入

还未添加个人简介

评论

发布
暂无评论
iOS中的Block(初步认识)_ios_NewBoy_InfoQ写作社区