0

シナリオは以下のとおりです。

A tableViewController、B viewController、CScrollViewの2つのコントローラーを作成しました。tableViewControllerには、BviewControllerに入るセルがあります。B viewControllerには、Bの正面図であるCscrollViewがあります。

CscrollViewにはNSURLConnectionのオブジェクトがあります。これは画像をダウンロードするために機能しました。

(A-> pushViewController-> B(Cがあります)->(Cは開始後にNSURLConnectionを処理します))


画像のダウンロード中にCscrollViewを閉じると、エラーが発生します!! (ダウンロード終了後)B scrollViewControllerを解除すると、Cのオブジェクトが解放されるため。したがって、接続'didFinished'の後、Cデリゲートを検索しません(didFinishedを呼び出した後、Bオブジェクトメソッドを処理します)。

これが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);  
    }  
} 

Bのdeallocメソッドはこちらです。


- (void)dealloc {
        [C release];
 C = nil;
        [super dealloc];
}

どうすればエラーが発生しませんか?私を助けてください...

4

1 に答える 1

0

私はそれを知っていました。とても簡単。

接続キャンセルが正解です。

私は初心者だと思いますㅠ,.ㅠ;;

于 2010-02-22T07:40:26.983 に答える