释放NSUrlConnection对象的正确点是什么?
在我的程序中,我分配一个NSUrlConnection,然后initWithRequest异步启动。
我现在负责释放对象 - 我什么时候可以释放?如果我不再使用它会马上出现?
答案 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对象之后立即释放它,直到我读到这个问题,但这似乎可以解决问题。