重用NSURLConnection的实例

时间:2011-03-04 00:42:07

标签: iphone nsurlconnection reusability

我在iPhone上使用NSURLConnection实例从服务器请求数据,由代理人照常管理。请求非常频繁(可能每2分钟说一次)并且有一个共同的固定URL。而不是在每次下载后发现NSURLConnection的良好实例,然后创建一个新实例:

  1. 保留第一个连接并重新使用它有什么价值吗? (我希望如此,一个好的身份验证应该值一千。)

  2. 如果是这样,我该如何重复使用它?文档中的突出方法是-start,但是当在已经使用过的(并且非零)NSURLConnection实例上调用时,这似乎会使应用程序崩溃。 [文档确实说-start“会导致接收者开始加载数据(如果尚未加载)。”]

  3. 如果对上述问题有帮助,我(是!)提议:

    if (connection_ == nil)
       {
        connection_ = [NSURLConnection connectionWithRequest:request
                                                    delegate:self];
       }
      else
       {
        [connection_ start];
       }
    

1 个答案:

答案 0 :(得分:3)

文档似乎表示URL连接保留了它的委托(非常规,但在这种情况下是必需的),然后在连接完成加载,失败或取消时释放它。

问题是委托不是NSURLConnection上的可设置属性,所以你不能在它被释放后重置它。这几乎使得URL连接在运行一次之后变得无用,如果你想再次执行它,则需要你释放并重新创建它。