Molto probabilmente una domanda piuttosto banale ma il blocco di completamento sarà sempre chiamato usando [NSURLConnection sendAsynchronousRequest: ...]
? O devo implementare un timer di timeout?[NSURLConnection sendAsynchronousRequest: ...] invia sempre il blocco di completamento?
Si consideri il seguente in cui aggiungo un MBProgressView
prima della chiamata e rimuoverlo solo nel blocco completo:
[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);
}
}];
naturalmente. un gestore di completamento è un gestore COMPLETAMENTO - non un gestore di successo: D –
@ Daij-Djan Sono il gestore del successo, non il completatore che completa il completamento! – Groot
if (! Error) = successo: D –