我需要能够跟踪上次用户活动(触摸屏幕)。我发现了这个问题并回答here但是这对我来说根本不起作用。 idleTimer.release
不是一件事我只是得到一个错误。另外,我假设你必须创建一个NSTimer,因为idleTimer不是你要做的事情。我也对行
idleTimer = [[NSTimer scheduledTimerWithTimeInterval:maxIdleTime target:self selector:@selector(idleTimerExceeded) userInfo:nil repeats:NO] retain];
那么,我怎样才能在swift中实现这一目标?有点沮丧!
答案 0 :(得分:4)
这是我在我的应用中如何做到这一点。创建计时器以便经常检查:
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)
}
答案 1 :(得分:2)
对于要跟踪上次用户活动的每个视图控制器,使用NSDate或NSTimeInterval创建属性。
然后,在视图控制器子类中自由使用NSResponder或UIResponder(您没有指定是否在iOS或MacOS中执行此操作)方法,这是什么每个应用程序,窗口和视图都建立在。
之上 例如, UIResponder有" touchesBegan:withEvent:
"的方法,每次在视图中发生触摸时,您都可以重置视图控制器的日期属性。