下面是一个场景。
我制作了两个控制器,一个tableViewController,一个B viewController和一个C ScrollView。 tableViewController具有进入B viewController的单元格。 和B viewController有C scrollView,它是B的前视图。
C scrollView具有NSURLConnection的对象。 这可以下载图像。
(A - > pushViewController - > B(有C) - >(C启动后处理NSURLConnection))
如果我在下载图像时关闭C scrollView, 发生错误!! (完成下载后) 因为当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];
}
我怎么能不出错? 请帮帮我......
答案 0 :(得分:0)
我知道。这么简单。
连接取消是正确答案。
我想我是初学者ㅠ,。ㅠ;;