如何正确取消NSURLConnection

时间:2011-11-05 10:22:03

标签: objective-c ios nsurlconnection

这可能听起来像一个新手问题,但我是iOS开发新手。

我已将NSURLConnection* mImageUploadConnection声明为实例成员。 然后运行以下来创建它。

mImageUploadConnection = [[NSURLConnection alloc] initWithRequest:someRequest delegate:self startImmediately:YES];

分配后保留计数为2,为什么? (这可能是Apple内部的东西,对吧?我还需要只发布一次连接?)。

我正在

中发布连接
 - didFailWithError
 - connectionDidFinishLoading

方法,但是当用户从当前导航视图弹出时,我还需要取消连接。即取消可以在mImageUploadConnection尚未完成或失败时进行。我以下列方式取消连接

if (mUploadeImagConnection != nil) {
    [mUploadeImageConnection cancel];  
    [mUploadeImagConnection release];
}

当未完成或失败时,连接会被正确取消。 但是,当连接成功完成时,最后一个代码段失败(错误访问),即它已被释放一次。

  • 取消之后,mUploadeImagConnection的保留计数为1 连接成功完成,为什么会这样?
  • 如果连接状态是,我如何签入最后一个代码段 成功了,不发送取消信息?

1 个答案:

答案 0 :(得分:0)

释放后,将你的ivar设置为nil