1

最後のユーザー アクティビティ (画面のタッチ) を追跡できるようにする必要があります。この質問と回答はこちらで見つかりましたが、これは私にとっては迅速に機能しません。idleTimer.releaseは問題ではなく、エラーが発生するだけです。また、作成しない限りidleTimerも問題ではないため、NSTimerを作成する必要があると想定しています。ラインも迷ってる

idleTimer = [[NSTimer scheduledTimerWithTimeInterval:maxIdleTime target:self selector:@selector(idleTimerExceeded) userInfo:nil repeats:NO] retain];

では、どうすればこれを迅速に達成できますか?ちょっとイライラ!

4

2 に答える 2

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)
}
于 2014-10-13T00:34:02.720 に答える
2

最後のユーザー アクティビティを追跡するビュー コントローラーごとに、NSDate または NSTimeInterval のいずれかでプロパティを作成します。

次に、ビュー コントローラーのサブクラスで NSResponder またはUIResponder (iOS または MacOS でこれを行うかどうかを指定しませんでした) メソッドを自由に使用します。これは、各アプリケーション、ウィンドウ、およびビューがその上に構築されるものです。 .

たとえば、UIResponder には " touchesBegan:withEvent:" のメソッドがあり、ビューでタッチが発生するたびにビュー コントローラーの日付プロパティをリセットできます。

于 2014-10-12T23:40:26.257 に答える