OC-Block-块的说明和使用

- (void)blockClass{

    Block_B b1;

    b1 = ^(int a,int b){

        return a+b;

    };

    b1(11,21);

    Block_B b2;


    //返回值为void,参数为void的代码块:

    void (^b)() = ^(){

        printf("无参block");

    };

    //block的调用:

    b();

    //3.如果block中得到的返回值的类型(不是返回值)系统可以确定,返回值可以省略。

    //声明一个返回值为int,参数为intblockbb

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

        return a+b;

    };

    //把函数名换成尖括号,

    bb = ^(int  a,int b){

        printf("a+b = %d",a+b);

        return 0;

    };

    //block的调用:

    int sum  = bb(1,2);

    //2.如果block的参数为void可以这么赋值:

    b = ^{

        NSLog(@"bloack");

    };

    

    void (^print)(int n);

    print = ^(int n){

        for (int i = 0; i<n;i++) {

            printf("n\n");

        }

    };

    print(4);

    

    //1.block在声明的同时可以赋值。

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

        return a*b;

    };

    NSLog(@"%d",bbb(11,20));

}

- (void)block{

    int a = 9;

    int b = 100;

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

        a = b;

        return a+b;

    };

    

    //block当中可以访问外面的变量,但是不能更改外面的变量值,是只读的

    //如果想修改,需要在变量前面加:__block;

    //int __block a;

    //int __block b;

    

    bb(a,b);

}

- (void)block3{

//block不是一个对象,加入数组中作为方法的参数,返回值

//放入数组中是一个强引用。


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值