使用NSURLConnection时怎么能出错?

时间:2010-02-22 06:46:01

标签: cocoa release nsurlconnection dealloc

下面是一个场景。

我制作了两个控制器,一个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];
}

我怎么能不出错? 请帮帮我......

1 个答案:

答案 0 :(得分:0)

我知道。这么简单。

连接取消是正确答案。

我想我是初学者ㅠ,。ㅠ;;