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!".




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。