iphone - NSTimer - 创建了多个实例

标签 iphone ios ipad nstimer polling

我有一个应用程序,它会定期轮询服务器。轮询是使用定时器任务执行的。定时器只需要在一个屏幕上使用,所以当我移动到其他屏幕时,定时器会失效。

我观察到有时计时器会失效,但有时不会。当它没有失效时,会继续创建多个实例。

我已经初始化定时器如下:

 timer = [NSTimer scheduledTimerWithTimeInterval: 2
                                         target: self
                                       selector: @selector(timerTask:)
                                       userInfo: nil
                                        repeats: YES];

并作废如下:

if(timer){

    [timer invalidate];
    timer = nil;


}

请帮忙,在这种情况下需要做什么。

提前致谢。

最佳答案

您要创建多个计时器吗?在上面发布的代码片段中,如果执行时已经定义了计时器:

 timer = [NSTimer scheduledTimerWithTimeInterval: 2
                                     target: self
                                   selector: @selector(timerTask:)
                                   userInfo: nil
                                    repeats: YES];

任何对定时器的进一步引用只会给你最新创建的一个,获得对原始定时器的引用的唯一方法是检查你的选择器中的参数,看看它是否与你定义的定时器实例变量不同。

关于iphone - NSTimer - 创建了多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10926032/

相关文章:

iphone - 编程内存警告 ios

iphone - CGAffineTransformMakeRotation 围绕外部点

ios - 使用 StoryBoard 添加 TableFooter View

iphone - iOS 核心数据对象的唯一标识符?

iPhone iOS NSDate 如何检测日期范围是否包括月初?

iphone - App Store评论整合

iphone - CoreText 绘图、接收触摸、触摸坐标困惑

ios - Xcode 9 : Module compiled with Swift 3. 1 Swift 4.0无法导入

iphone - 在表格 View 单元格中动态更改按钮

ios - 如何使用UISwipeGestureRecognizer检测轻拂手势?