Скорее всего, довольно тривиальный вопрос, но будет ли вызываться блок завершения с помощью [NSURLConnection sendAsynchronousRequest: ...]
? ИЛИ мне нужно реализовать таймер тайм-аута?Будет ли [NSURLConnection sendAsynchronousRequest: ...] всегда отправлять блок завершения?
Рассмотрим следующий пример, где я добавить MBProgressView
перед вызовом и снимите его только в блоке завершения:
[self showHUDWithTitle:@"Configuring"];
[NSURLConnection sendAsynchronousRequest:request
queue:[[NSOperationQueue alloc] init]
completionHandler:^(NSURLResponse *response,
NSData *data,
NSError *error) {
if ([data length] >0 && error == nil) {
[self hideHUDWithFlag:YES
andTitle:@"Finished"
andSubtitle:@"(Box was configured)"];
} else if ([data length] == 0 && error == nil) {
[self hideHUDWithFlag:NO
andTitle:@"Failed"
andSubtitle:@"(Check box connection)"];
NSLog(@"Nothing was downloaded.");
} else if (error != nil) {
[self hideHUDWithFlag:NO
andTitle:@"Error"
andSubtitle:@"(Check box connection)"];
NSLog(@"Error = %@", error);
}
}];
естественно. обработчик завершения - это обработчик COMPLETION - не обработчик успеха: D –
@ Daij-Djan Я - обработчик успеха, а не дополнение, которое завершает завершение! – Groot
если (! Ошибка) = успех: D –