【Objective-C】自作したメソッドでcompletionHandler(完了コールバック)を実装する方法【Xcode11/iOS13対応】

こういう人に向けて発信しています。
・完了blockを導入したい人
・処理が完了したタイミングで処理を行いたい人
・Objective-C初心者

コード(Objective-C)

#i
@mport "ViewController.h"

// typedef 戻り値の型 (^ブロックの型名)(引数リスト)
typedef void (^voidBlock)(void);


@implementation ViewController

//注意:本来であればviewDidLoadなどのViewControllerのライフサイクルより前に書くのは可読性が低くなるので止めましょう。
- (void)calculateFor:(voidBlock)completionHandler{
   for(int i=0; i<15; i++){
       NSLog(@"for文_%d番目",i);

       //本来であればblockの存在
       if(i == 14 && completionHandler){
           NSLog(@"for文_最終巡目");
           completionHandler();
       }
   }
}

- (void)viewDidLoad {
   [super viewDidLoad];
   
   [self calculateFor:^{
       //完了時の処理
       NSLog(@"呼び出した処理が実行され完了した");
   }];
}

@end

この記事が気に入ったらサポートをしてみませんか?