zoukankan      html  css  js  c++  java
  • 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;

        }];

  • 相关阅读:
    C# 使用IComparer自定义List类的排序方案
    ubuntu的vim模式
    linux系统目录结构与层级命令使用
    GitHub托管项目
    应用TortoiseGit为github账号添加SSH keys
    PHP中利用PHPMailer配合QQ邮箱实现发邮件
    QQ互联 网站应用接入
    dedecms 中变量函数
    WebSocket 协议
    前端组件库
  • 原文地址:https://www.cnblogs.com/nxz-diy/p/5287757.html
Copyright © 2011-2022 走看看