我需要能够跟踪最后一次用户活动(触摸屏幕)。我在这里找到了这个问题和答案,但这对我来说根本不起作用。idleTimer.release
不是一件事,我只是得到了一个错误。此外,我假设你必须创建一个NSTimer,因为idleTimer也不是一个东西,除非你制作它
idleTimer = [[NSTimer scheduledTimerWithTimeInterval:maxIdleTime target:self selector:@selector(idleTimerExceeded) userInfo:nil repeats:NO] retain];
那么,我该如何快速完成这项工作呢?有点沮丧!
以下是我在应用程序中的操作方法。创建计时器以每隔一段时间进行检查:
self.timer = NSTimer.scheduledTimerWithTimeInterval(
10, target: self, selector: "decrementScore", userInfo: nil, repeats: true)
现在我们知道,如果调用decrementScore(),10秒的空闲时间就过去了。如果用户做了什么,我们需要重新启动计时器:
func resetTimer() {
self.timer?.invalidate()
self.timer = NSTimer.scheduledTimerWithTimeInterval(
10, target: self, selector: "decrementScore", userInfo: nil, repeats: true)
}
对于要跟踪的最后一个用户活动的每个视图控制器,创建一个具有NSDate或NSTimeInterval的属性。
然后,在视图控制器子类中自由使用NSResponder或UIResponder(您没有指定是否在iOS或MacOS中这样做)方法,这是每个应用程序、窗口和视图构建的基础。
例如,UIResponder有"touchesBegan:withEvent:
"的方法,每次在视图中发生触摸时,您都可以重置视图控制器的日期属性。