標籤:
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!".
iOS簡單block的使用