OC中的Block简单介绍

Block的意思就是 块,跟java中的匿名内部类的实现有点相似,例如:

 //定义了一个block,这个block返回值是int类型,接收两个int类型的参数

    int (^Sum)(int,int)=^(int a,int b){

        return a+b;

    };

    

    int a=Sum(10,5);

    

    NSLog(@"%i",a);


上述代码中,定义一个Block用 ^符号, Block有返回值类型,也可以有参数。

我们可以先定义一个Block类型,然后再去实现,例如:

    //定义了MySum这种Block类型

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

    

   //定义了一个block变量

    MySum sum1=^(int a,int b){

        return a+b;

    };

    

    int c=sum1(1,2);

    NSLog(@"%i",c);

例如上边的代码中,先用typedef定义了一个叫MySum的Block类型,然后再定义一个block变量,最后在调用。


Block在使用的时候,跟指针函数有点类似,例如:

int sum(int a,int b){

    return a+b;

}


void test(){

    //block

    int (^Sum)(int,int)=^(int a,int b){

        return a+b;

    };

    int c=Sum(10,10);

    NSLog(@"%i",c);


    //指针函数

    int (*sump)(int ,int)=sum;

    

    c=(*sump)(10,7);

    NSLog(@"%i",c);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值