IOS block简单讲解

- 日理万妓 2022-08-06 14:25 258阅读 0赞

1、block 定义及调用

block定义

int (^sum) (int a,int b)=^(int a,int b)

{

  1. return a+b;

};

返回类型 (^blockName) (参数类型 参数1,参数类型 参数2)=^(参数类型 参数1,参数类型 参数2)

{

return 返回类型;

};

调用block

int n;

n=sum(10,15);

NSLog(@”a+b=%i”,n);

2、 typedef定义block

typedef int (^MySum) (int,int);

typedef 返回类型(^名称)(参数类型,参数类型);

block调用

MySum sum;

sum=^(int a,int b)

{

  1. return a+b;

};

3、block可以访问外部变量

int a=5;

sum=^(int a,int b)

{

  1. NSLog(@" %i",a);
  2. a=7;这句话会报错
  3. return a+b;

};

这种情况不能修改变量a的值

如果想在block里修改变量值,在定义变量a时应该这样:

__block int a=5;//__block两个下划线

sum=^(int a,int b)

{

  1. NSLog(@" %i",a);
  2. a=7;编译通过
  3. return a+b;

};

发表评论

表情:
评论列表 (有 0 条评论,258人围观)

还没有评论,来说两句吧...

相关阅读

    相关 IOS——Block

    Block:块语句,是IOS4.0以后引入的。Block是一种具有匿名功能的内嵌函数,他勇敢有一般函数的带参访问,拥有返回值,可以撷取被定义的词法作用域状态,可以选择性的修改词

    相关 IOS 理解Block

    Block一个带有自动变量的匿名函数。 匿名函数是因为Block没有函数名称,由^返回值类型,入参类型,表达式组成。但可以赋值给Block类型变量。 自动变量在Block

    相关 ios block 用法

      一. block简介     Block是一个C级别的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,但是其运行需要编译器和运行时支持,从ios4.0开始就

    相关 ios block

    1.block的特点: > block是c语言; > > block是一种数据类型,可当做参数使用,也可以用作返回值;总之,对比int的用法用即可【定义的时候,最好跟函数对

    相关 iOSBlock

    一、概述 Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存、堆内存的引用,我们甚至可以将一个Block作为参

    相关 iOS代码块Block

    ![1240][] block.png iOS代码块Block 概述 代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,Bloc