OC中block作方法参数时的用法

方式一、在传参时直接声明block回调方法。

1. 定义方法:

- (int)doTest:(NSString *)name para1:(int)temp1 para2:(int)temp2 success:(int (^)(int param1, int param2))success

{

    int ret = success(temp1, temp2);

    NSLog(@"----%@ -- %d--", name, ret);

    return ret;

}

2. 调用方法:

    [self doTest:@"Tom" para1:8 para2:15 success:^int(int param1, int param2) {   // 调用 doTest的时候,这个红色的block在 doTest 中马上就会调用(见上面蓝色代码)。

        return param1 + param2; 

    } ];

 

====================================================

 1. 定义方法:
//- (void)doTest:(NSString *)name para1:(int)temp1 para2:(int)temp2 success:(int (^)(int a, int b))success
//{
//    
//    
//    NSLog(@"----temp1=%d -- temp2=%d--", temp1, temp2); // temp1=33; temp2=44;
//    
//    success(11, 22);
//}
//
//- (void)viewDidLoad {
//    [super viewDidLoad];
//    
//    
//    //2. 调用方法:
//    [self doTest:@"Tom" para1:33 para2:44 success:^int (int a, int b) { // 调用 doTest的时候,这个红色的block在 doTest 中马上就会调用(见上面蓝色代码)。
//        
//        NSLog(@"---a=%d -- b=%d--", a, b); // a=11; b=22;
//        
//        return 0;
//    }];
//    
//}

===========================================

方式二、用typedef定义一个block别名,在参数中用别名声明参数是block类型。

1. 声明一个block方法的类型:

     typedef int (^myBlock)(int a, int b);

 

2. 定义方法:

- (int)doTest:(NSString *)name para1:(int)temp1 para2:(int)temp2 success:(myBlock)success

{

    NSLog(@"----temp1=%d --temp2=%d--", temp1, temp2); // temp1=55;   temp2=66;

    int ret = success(33, 44);

    return ret;

}

3. 调用方法:

    [self doTest:@"Tom"  para1:55 para2:66 success:^int(int a, int b) {

    NSLog(@"----a=%d -- b=%d--", a, b);  // a=33; b=44;

        return 1;

    }];

转载于:https://www.cnblogs.com/nxz-diy/p/5287757.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值