un scénario est ci-dessous.Comment ne pas avoir une erreur lors de l'utilisation de NSURLConnection?
J'ai fait deux contrôleurs, un tableViewController, B viewController et C ScrollView. Un tableViewController a une cellule qui entre dans B viewController. et B viewController a C scrollView qui est vue de face de B.
C scrollView a l'objet de NSURLConnection. et cela a fonctionné pour télécharger une image.
(A -> pushViewController -> B (a C) -> (procédé C NSURLConnection après initiation))
Si je rejette le C ScrollView pendant le téléchargement d'une image, se produit une erreur !! (après avoir terminé le téléchargement) Parce que lorsque B scrollViewController est rejeté, l'objet de C est libéré. Donc, après la connexion 'didFinished', ne pas rechercher C délégué (après avoir appelé didFinished, la méthode d'objet processus B).
Voici une partie du code de C.
- (void)downloadScreenshotWithURLString:(NSString *)aURLString {
AsyncImageViewDownload* download; // AsyncImageViewDownload has NSURLConnection
download = [[AsyncImageViewDownload alloc] initWithURL:aURLString delegate:self selector:@selector(urlDownload:data:error:)];
[[self operationQueue] addOperation:download];
[download release];
}
// After download.
- (void)urlDownload:(AsyncImageView *)aDownload data:(NSData *)data error:(NSError *)error {
if (data)
{
// add ImageData to the front view.
[self displayScreenshot:data];
}
else
{
NSLog(@"download error: %@", error);
}
}
et la méthode dealloc de B est ici.
- (void)dealloc {
[C release];
C = nil;
[super dealloc];
}
Comment ne pas avoir une erreur? S'il vous plaît, aidez-moi ...