Objective-c 引数、返り値なしのblockの実行方法
引数、返り値なしのblockの実行方法が分かりません。
下記コードで引数なし、返り値なしのblockと引数あり、返り値なしのblockをテストしています。
- (void)test1:(void(^)(void))block {
NSLog(@"test1呼び出し");
(void)block;
}
- (IBAction)test1Tapped:(id)sender {
[self test1:^{
NSLog(@"ブロック実行");
}];
}
- (void)test2:(void(^)(NSString *))block {
NSLog(@"test2呼び出し");
block(@"ブロックの引数");
}
- (IBAction)test2Tappeed:(id)sender {
[self test2:^(NSString *string) {
NSLog(@"ブロック実行: %@", string);
}];
}
test2Tappedメソッドではtest2メソッドに付属しているブロックが実行されましたが
test1Tappedメソッドではtest1メソドに付属しているブロックが実行されませんでした。
SDKの- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion
メソッドではtest1Tappedメソッドと同じように空のブロック^{ }
でメソッド完了後の処理が記述できているのでtest1
メソッドで同じことができてもおかしくないと思うのです。
原因および解決策わかる方いましたらご教授お願いします。