1

NSURLConnection每 11 秒使用NSTimer. 在主NSTimer运行循环上运行。该请求的超时时间为 10 秒。在NSTimer我增加应用程序上的 UI 活动之前效果很好(比如点击UIButtonsUIAlertViews频繁关闭)。

在此之后,NSTimer加速并像一个while循环一样运行,没有任何延迟。这会在应用程序中产生很多问题,因为我无法正确处理连接响应。

4

1 回答 1

1

问题是您在按钮操作中声明了一个 NSTimer ......现在每次按下这个按钮时,NSTimer 间隔都会编译到它的前一个间隔,结果是它被调用的频率是它的两倍......下次它是比以前的两倍频繁……等等。

最好的方法是在 .h 文件中定义 NSTimer ,然后每次在 .m 文件中有代码调用它时,首先检查它是否已经存在,如果存在则无效并释放它。

  if(myTimer){
        [myTimer invalidate];
        [myTimer release]; 
  }
  myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timeInterval) userInfo:nil repeats:YES];
于 2013-01-11T04:14:18.710 回答