关闭NSURL连接的正确方式



我在应用程序中使用服务器-客户端体系结构。

我使用的是NSURLConnection类,现在假设我在for循环中发送多个请求,并使用带有委托方法的异步连接。所以我的问题是在我收到服务器的响应后,我需要手动关闭连接并使该对象为空。

我之所以这么问,是因为服务器上对要进行的最大连接有限制,如果连接限制超过,我必须重新启动服务器,并且我无法更改最大连接限制。

否。不需要它,因为当发生错误或数据已加载时,NSURLConnection将自行关闭连接。

如果你想监控实际发生的事情,我建议你看看技术问答;一个QA1176。它描述了如何设置一个环境来监控iPhone发送的每个数据包。然后您可以自己验证NSURLConnection的行为。

释放连接的正确方法是将其设置为nil以及用于从连接接收数据的属性:

theConnection = nil;
receivedData = nil;

这来自"使用NSURLConnection"一节中的"URL会话编程指南"。

通过将属性(在其他地方声明)设置为nil来释放连接和数据对象。请注意,现实世界中的应用程序通常要求委托一次管理多个连接,因此这些行通常会被代码所取代,以迭代您正在使用的任何数据结构。

请使用此。。可以帮助

[self.connection cancel];
self.connection = nil;

最新更新