52

アプリの起動時にメソッドを呼び出してから、5 秒ごとに同じメソッドを呼び出す必要があります。

私のコードはとてもシンプルです:

// Call the method right away
[self updatestuff:nil]

// Set up a timer  so the method is called every 5 seconds
timer = [NSTimer scheduledTimerWithTimeInterval: 5
                                          target: self
                                        selector: @selector(updatestuff:)      
                                        userInfo: nil
                                         repeats: YES];

タイマーのオプションがあるので、すぐにトリガーしてから5秒ごとにトリガーしますか?

4

5 に答える 5

86

NSTimer-fire[timer fire];あなたが探しているものです。

それは、時間遅延を却下するタイマーを起動/すぐに呼び出します。

于 2012-05-26T07:13:16.180 に答える
21

同じコード行で、タイマーをスケジュールしてイベントをすぐに発生させることはできません。したがって、2 行のコードで実行する必要があります。

まず、タイマーをスケジュールし、すぐにタイマーで 'fire' を呼び出します。

timer = [NSTimer scheduledTimerWithTimeInterval: 5
                                      target: self
                                    selector: @selector(updatestuff:)      
                                    userInfo: nil
                                     repeats: YES];
[timer fire];

発射が呼び出されると、タイマーが発射を待機する時間間隔がリセットされます。これは、実行されたばかりであるためです。その後、指定された間隔 (この場合は 5 秒ごと) で実行が継続されます。

于 2014-07-03T13:25:53.070 に答える
12

スウィフトの場合:

timer = Timer.scheduledTimer(timeInterval: interval, target: self, selector: #selector(foo), userInfo: nil, repeats: true)
timer.fire()
于 2018-06-26T16:02:44.617 に答える