重用NSURLConnection的实例

SK9*_*SK9 7 iphone reusability nsurlconnection

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

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

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

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

if (connection_ == nil)
   {
    connection_ = [NSURLConnection connectionWithRequest:request
                                                delegate:self];
   }
  else
   {
    [connection_ start];
   }
Run Code Online (Sandbox Code Playgroud)

Jas*_*ien 3

文档似乎说 URL 连接保留其委托(非常规,但在本例中是必要的),然后在连接完成加载、失败或取消时释放它。

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