iOS簡單block的使用

來源:互聯網
上載者:User

標籤:

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的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.