Как выполнить другой метод после завершения метода, используя блок завершения в задаче c?

У меня есть два метода. Я хочу выполнить одно после завершения задания первого. Как я могу это сделать?

2 ответа

Я предполагаю, что вы ищете простое решение для блока завершения, так что этого должно быть достаточно.

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

Используйте как это,

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

Вы можете сделать что-то вроде,

    [[manager POST:url parameters:parameters success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {

            NSLog(@"This is success!!!");

       //this is first method's completion blcok!

               // this is another method from completion of first
                    [self saveImages:^(BOOL isDone) {

                        // this is second method's completion

                    }];

               } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

            NSLog(@"failure : Error is : %@",error.localizedDescription);

          // this is completion of first method but with failure

        }]resume];

Это простой пример того, как это сделать!! В этом я использовал метод AFNEtworking, так что не путайте с ним!

Другие вопросы по тегам