シナリオは以下のとおりです。
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];
}
どうすればエラーが発生しませんか?私を助けてください...