.hファイルで宣言し、その後メソッドの中で設定したNSTimerについて質問があります。しかし、このメソッドは1つより多くのメソッドと呼ばれるので、NSTimerは同じ名前で複数回実行されます。Objective-c iPhone NSTimerのユニークな識別子
私の質問は、タグ/ IDなどを設定して、NSTimerを正しいタグ/ IDで無効にすることができるかどうかです。
ありがとうございました!
.hファイルで宣言し、その後メソッドの中で設定したNSTimerについて質問があります。しかし、このメソッドは1つより多くのメソッドと呼ばれるので、NSTimerは同じ名前で複数回実行されます。Objective-c iPhone NSTimerのユニークな識別子
私の質問は、タグ/ IDなどを設定して、NSTimerを正しいタグ/ IDで無効にすることができるかどうかです。
ありがとうございました!
MainViewController.mが、以来、ここに私のソリューションですこの同じタイマーを無効にするには、そのuserInfo文字列を確認してください。
// invalidate timer
if ([[timer userInfo] isEqual:@"timer1"])
[timer invalidate];
作成して実行しているNSTimerへの参照を保存するだけで、このリファレンスを使用するだけです。
複数のNSTimerを作成していて、それらを個別に処理する必要がある場合は、それらを独立して保存する必要があります。固定数がある場合は、十分な数の変数を作成して適切な名前を付けるだけです。または、配列内に保持します(インデックスでキー入力します)。または、文字列名をキーに辞書に入れます。
上記のフレーズ(「同じ名前で実行されています」)は多少私に関係しています。タイマーには、慎重なメモリ処理要件があります。幅広いデザインのヘルプが必要な場合は、自分の質問を編集して、自分が行っていることの詳細を確認します。
よろしくお願いします。次のコードがあります。しかし、一意のID /タグを設定する方法はありませんので、後でタイマーを無効にすることができます。これは、タイマーメソッドが複数のものを呼び出すためです。
// set timer
timer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(whateverMethod)
userInfo:@"timer1"
repeats:YES];
へ:私は今日と同じニーズを持っていた(そのアニメーション画像/ボタン用)この質問はずっと前に頼まれた
- (void)timerMethod {
NSTimer *daTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(animations:) userInfo:nil repeats:YES];
}
** [timer userInfo] **戻り値なしViewController。 –