我在iPhone上使用NSURLConnection实例从服务器请求数据,由代理人照常管理。请求非常频繁(可能每2分钟说一次)并且有一个共同的固定URL。而不是在每次下载后发现NSURLConnection的良好实例,然后创建一个新实例:
保留第一个连接并重新使用它有什么价值吗? (我希望如此,一个好的身份验证应该值一千。)
如果是这样,我该如何重复使用它?文档中的突出方法是-start
,但是当在已经使用过的(并且非零)NSURLConnection实例上调用时,这似乎会使应用程序崩溃。 [文档确实说-start
“会导致接收者开始加载数据(如果尚未加载)。”]
如果对上述问题有帮助,我(是!)提议:
if (connection_ == nil)
{
connection_ = [NSURLConnection connectionWithRequest:request
delegate:self];
}
else
{
[connection_ start];
}
答案 0 :(得分:3)
文档似乎表示URL连接保留了它的委托(非常规,但在这种情况下是必需的),然后在连接完成加载,失败或取消时释放它。
问题是委托不是NSURLConnection上的可设置属性,所以你不能在它被释放后重置它。这几乎使得URL连接在运行一次之后变得无用,如果你想再次执行它,则需要你释放并重新创建它。