0

下面是一个场景。

我做了两个控制器,A tableViewController,B viewController 和 C ScrollView。A tableViewController 具有正在进入 B viewController 的单元格。B viewController 有 C scrollView 是 B 的前视图。

C scrollView 有 NSURLConnection 对象。这起到了下载图像的作用。

( A -> pushViewController -> B (有 C) -> (C 进程 NSURLConnection 启动后))


如果我在下载图像期间关闭 C 滚动视图,则会出现错误!(下载完成后)因为当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 回答