Je suis en train de faire une demande asynchrone avec ASIHTTPRequest, mais ont quelques problèmes à se prévenir si la demande est faite.ASIHTTPRequest, EXC_BAD_ACCESS lorsque la demande avait fini
-(void)doDownload{
NSURL *url = [NSURL URLWithString:@"http://www.someurl.com/?"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"someValue" forKey:@"someField"];
[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestFinished)];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
}
requestFinished n'est jamais appelé. Je reçois une exception dans ASIHTTPRequest.m, -handleStreamCompleted:
if (fileError) {
[self failWithError:fileError];
} else {
[self requestFinished]; <----- this call fails
}
Des indices?
Cela semble être la bonne réponse. J'ai un problème de gestion à vie qui doit être résolu. Maintenant, je crée une classe de téléchargement, appelle une méthode et la libère immédiatement. Je dois implémenter un système de rappel pour permettre au propriétaire de l'instance de téléchargement de savoir quand les choses sont faites. J'en aurais besoin éventuellement, pour masquer les vues de progression et mettre à jour les données, etc. Merci. – Vegar
Comment cela peut-il être fait avec ARC? S'il vous plaît voir mon [sujet ici] (http://stackoverflow.com/questions/8355974). – dhrm
Tosh. @tomute a raison, le nom du sélecteur est requestFinished :, requestFinished, c'est tout le problème. Pas besoin de casser votre jolie petite tête au cours des cycles de vie et conserve et d'autres choses. –