iphone - NSTimer 未运行

标签 iphone cocoa-touch cocoa

我有一个程序,我想在其中编写一个计时器来检查用户是否空闲。为此我编写了以下代码:

    if (!idleTimer) {
      NSLog(@"make");
      idleTimer=[[NSTimer alloc]initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:10.0]interval:10 target:self selector:@selector(idleTimerExceeded) userInfo:nil repeats:NO];
      NSLog(@"madetimer with: %f, %@", idleTimer.timeInterval, idleTimer.fireDate);
}else {
      NSLog(@"no reset timer: %f", idleTimer.timeInterval);
      if (fabs([idleTimer.fireDate timeIntervalSinceNow]) < 9) {
         NSLog(@"reset");
         [idleTimer setFireDate:[NSDate dateWithTimeIntervalSinceNow:10]];
    }
}

但不知何故,我的日志显示间隔始终为 0.0000 。这意味着这里出了问题。有人可以帮助我吗?

最佳答案

我从未见过如此复杂的计时器。试试这个:

编写一个方法来检查用户是否空闲(比如说idleChecker)

然后使计时器可重复并调用该方法idleChecker

[NSTimer scheduledTimerWithTimeInterval:.5 target:self selector:@selector(idleChecker) userInfo:nil repeats:YES];

记得在.h文件中声明idleChecker方法

请注意,如果您想停止计时器事件,那么您需要维护对其的引用

NSTimer aTimer = [NSTimer scheduledTimerWithTimeInterval:.5 target:self selector:@selector(idleChecker) userInfo:nil repeats:YES];

然后停止它

[aTimer invalidate];

至于检查其是否正在运行,我只需在其中粘贴一条 nslog 消息,说明“检查空闲用户”之类的内容

关于iphone - NSTimer 未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8620374/

相关文章:

iphone - 如果密码正确,如何切换 iPhone View

iphone - iOS - 为每个 tableView 行解析多个 XML 文件

javascript - 拍照时 React-native iOS 应用程序崩溃

ios - writeToFile 和 writeToURL 有什么区别?

objective-c - 获取 Cocoa 中 NSMenuItem 的默认字体名称?

iphone - 从前置摄像头 iOS 5.0 捕获时总是看到镜像

iphone - 在 iPhone SDK 3.0 中链接静态库

iphone - 我们什么时候有 NSArray 和 NSDictionary 这么有用的创建者了

ios - 防止 dispatch_after() 后台任务被执行

xcode - 防止项目在某些条件下成功编译