2010-02-22 15 views
0

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 ...

Répondre

0

Je le savais. Si simple.

La connexion est la bonne réponse. Je pense que je suis débutant ㅠ,. ㅠ ;;