我NSURLConnection
每 11 秒使用NSTimer
. 在主NSTimer
运行循环上运行。该请求的超时时间为 10 秒。在NSTimer
我增加应用程序上的 UI 活动之前效果很好(比如点击UIButtons
、UIAlertViews
频繁关闭)。
在此之后,NSTimer
加速并像一个while循环一样运行,没有任何延迟。这会在应用程序中产生很多问题,因为我无法正确处理连接响应。
我NSURLConnection
每 11 秒使用NSTimer
. 在主NSTimer
运行循环上运行。该请求的超时时间为 10 秒。在NSTimer
我增加应用程序上的 UI 活动之前效果很好(比如点击UIButtons
、UIAlertViews
频繁关闭)。
在此之后,NSTimer
加速并像一个while循环一样运行,没有任何延迟。这会在应用程序中产生很多问题,因为我无法正确处理连接响应。
问题是您在按钮操作中声明了一个 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];