How to call a method once the completion block finish?

混江龙づ霸主 提交于 2019-12-04 20:45:17

You can create a block with your signUp method like this and pass the Bool completion value to check is it called successfully or not. So change your method declaration like this.

-(void)signUp:(QBUser*)user andHandler:(void (^)(BOOL result))completionHandler;

And its definition

-(void)signUp:(QBUser*)user andHandler:(void (^)(BOOL result))completionHandler {
    [MYRequest signUp:user successBlock:^(QBResponse *response, QBUUser *user) {
        [SingletonClass sharedMySingleton].userID = [NSString stringWithFormat:@"%@",response.data[@"id"]];   
        completionHandler(YES);
    } errorBlock:^(QBResponse *response) {
       // Handle error here
        NSLog(@" error in creating session %@", response.error);
        [SVProgressHUD showErrorWithStatus:NSLocalizedString(@"SignUp to Chat error!", nil)];
        completionHandler(NO);
    }];
}

Now call this method like this.

[ConnectionObj signUp:user andHandler:^(BOOL result) {
    if(result) {
        [helper normalSignupMethod:dict];
    }
}];

You can call the normalSignupMethod once the signUp:successBlock request returns to successBlock

[MYRequest signUp:user successBlock:^(QBResponse *response, QBUUser *user) {
        // Sign up was successful
        // Store user id
        [SingletonClass sharedMySingleton].userID = [NSString stringWithFormat:@"%@",response.data[@"id"]]; 

        //call the signup method 
        [helper normalSignupMethod:dict];

    } errorBlock:^(QBResponse *response) {
        // Handle error here
        NSLog(@" error in creating session %@", response.error);
        [SVProgressHUD showErrorWithStatus:NSLocalizedString(@"SignUp to Chat error!", nil)];
    }];
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!