2014-12-15 2 views
1

Я новичок в IOS, и мне нужна ваша помощь. Вот мой код.Подождите, пока блок завершения не закончен в запросе AFJSONRPCC

AFJSONRPCClient *client = [AFJSONRPCClient clientWithEndpointURL:[NSURL URLWithString:url]]; 
[client invokeMethod:@"call" success:^(AFHTTPRequestOperation *operation, id responseObject){ 
     NSLog(@"response %@",responseObject); 
    } failure:^(AFHTTPRequestOperation *operation, NSError *err){ 
     NSLog(@"errr %@",[err description]); 
    }]; 

Я хочу подождать, пока ответ не будет получен.

+0

Почему вы хотите это сделать? Не можете ли вы просто обновить пользовательский интерфейс/независимо от того, когда вы получите ответ и ничего не сделаете во время операции? – Droppy

+0

@ Droppy :: thx для ответа ... моя проблема ... над кодом определяется в методе класса A, и теперь у меня есть кнопка в классе B, когда я нажимаю на эту кнопку, метод вызывается из класса A и после получения ответ от метода класса А, перейдите к следующему экрану. –

ответ

1

Вы должны использовать делегат. Назовите это, когда получите ответ.

+0

Можете ли вы дать мне образец кода? –

+0

Большое вам спасибо, вы сэкономите свое время ... дайте u +1 ... awesome –

0

Попробуйте использовать блок обработчика завершения, как это:

- (void)doProcess_With_Comp:(void (^)(void))completion{ 
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
     // Add Your process here 
     AFJSONRPCClient *client = [AFJSONRPCClient clientWithEndpointURL:[NSURL URLWithString:url]]; 
     [client invokeMethod:@"call" success:^(AFHTTPRequestOperation *operation, id responseObject){ 
     NSLog(@"response %@",responseObject); 
    } failure:^(AFHTTPRequestOperation *operation, NSError *err){ 
     NSLog(@"errr %@",[err description]); 
    }]; 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      if (completion) { 
      completion(); 
      }}); 
     }); 
    } 

Для вызова этот:

[self doProcess_With_Comp:^{ 
    NSLog(@"Process Completed");}]; 

Надеется, что это поможет.

+0

:: я попробовал ваш код, но я хочу что-то другое ... см. Выше редактируемого кода и дайте мне знать, как можно решить? help me –

+0

@BandishDave Не редактируйте, чтобы задать новый вопрос. – matsjoyce

+0

@BandishDave, когда этот процесс завершен, вам нужно выполнить код push на другой странице вправо? – cyberlobe

Смежные вопросы