何时释放NSUrlConnection对象

时间:2009-10-11 18:26:51

标签: iphone

释放NSUrlConnection对象的正确点是什么?

在我的程序中,我分配一个NSUrlConnection,然后initWithRequest异步启动。

我现在负责释放对象 - 我什么时候可以释放?如果我不再使用它会马上出现?

4 个答案:

答案 0 :(得分:10)

完成NSURLConnection后。当NSURLConnection代表收到- (void)connectionDidFinishLoading:(NSURLConnection *)connection- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error后,您就会知道已完成此操作。只需在这两种方法结束时释放它。

答案 1 :(得分:7)

您可以立即释放您对NSUrlConnection的使用。

框架将在完成后发布。

答案 2 :(得分:1)

在框架向您发出已完成的通知之前,您不需要发布它,例如connection:didFailWithError:

答案 3 :(得分:1)

这有点晚了(你的问题发布于2009年,一年多前),但我的NSUrlConnection代码遇到了一些问题。 NSUrlConnection一直崩溃,我认为崩溃与我发布的NSUrlConnection [theConnection release];有关。我在Apple的示例here中编写了我的代码,但是我在“清单1”中创建了连接,而不是将其发布到Apple didFailWithError和{{1}它似乎工作正常。我不完全确定,但也许这两个代表都被调用了,双重释放是导致崩溃的原因。我不确定我可以在创建NSUrlConnection对象之后立即释放它,直到我读到这个问题,但这似乎可以解决问题。