• iOS 简单block的使用


    1.第一种方法

    声明block:

    - (void)test:(int) param_1 completion:(void(^)(int)) completion;

    实现block:

    -(void)test:(int)param_1 completion:(void (^)(int))completion {
        int total = ++param_1;
        completion(total);  //这个一定要写
    }

    调用block:

    [self test:10 completion:^(int param_2) {
         NSLog(@"param_2:%d",param_2);
     }];

    解释一下上面的方法,调用block的时候传递的是10,10在"实现block"那一步被加了1,Log打印出来的就是11

    2.第二种方法

    声明block:

    声明:(返回类型)(^声明的block名称)(参数列表);

    typedef void(^completion)(NSString *param_1, NSString *param_2);

    构造含有block的方法

    - (void)testNSString:(NSString *)param_1 completion:(completion) completion;

    实现block

    -(void)testNSString:(NSString *)param_1 completion:(completion)completion {
        NSString *test_1 = [param_1 stringByAppendingString:@" world"];
        NSString *test_2 = @"!";
        completion(test_1, test_2);//这个一定要写
    }

    调用block

    [self testNSString:@"hello" completion:^(NSString *param_1, NSString *param_2) {
        NSLog(@"输出内容是:%@",[param_1 stringByAppendingString:param_2]);
    }];

    解释一下上面的方法,调用block的时候传递的是"hello","hello"在"实现block"那一步被加了" world",Log打印出来的就是"输出内容是:hello world!".




  • 相关阅读:
    编译原理
    C++的RTTI
    静态加载dll的问题
    COM编程中的接口查询QueryInterface的实现原理
    com学习笔记(2)基本的com接口QueryInterface的实现
    如何从DLL中生成LIB文件
    CMAP原理及其在MFC中的实现(MAP模板没有顺序遍历的功能)
    多态性vptrvtable
    技术网站
    垃圾事务
  • 原文地址:https://www.cnblogs.com/wb145230/p/4451263.html
Copyright © 2020-2023  润新知