如何在目标c中使用完成块完成方法后执行另一种方法?

Saa*_*aad 1 objective-c ios completion-block

我有两种方法.我想在完成第一个任务后执行一个.我怎样才能做到这一点?

Zai*_*han 7

我假设您正在寻找简单的完成块解决方案,所以这应该足够了.

-(void)method1:(void (^ __nullable)(void))completion {
    NSLog(@"method1 started");
    //Do some stuff, then completion
    completion();
    NSLog(@"method1 ended");
}
-(void)method2{
    NSLog(@"method2 called");
}
Run Code Online (Sandbox Code Playgroud)

像这样使用,

- (void)viewDidLoad{
    [super viewDidLoad];
    [self method1:^{   //After method1 completion, method2 will be called
        [self method2];
    }];
}
Run Code Online (Sandbox Code Playgroud)