2

NSTimerプロパティをクラスの1つに追加して、必要なときに/必要に応じてキャンセルできるようにします。+cheduledTimerWithTimeIntervalと組み合わせて使用​​します。

強力、割り当て、コピー、またはunsafe_unretainedを使用する必要がありますか?(ARCを使用)。

4

1 に答える 1

1

これに使用strongします。通常、次のようにセッターをオーバーライドすることもできます。

- (void)setTimer:(NSTimer *)aTimer {
  if (aTimer != _timer) {
    [_timer invalidate];
    _timer = aTimer;
  }
}

このように、タイマーを変更またはクリア(nil)すると、古いタイマーは自動的に無効になります(したがって、将来は起動しません)。

aTimer != _timerようなことをした場合にタイマーを無効にしないようにするためにありますself.timer = self.timer。おそらく直接それを行うことはないでしょうが、間接的に発生することもあります。

于 2012-04-23T22:18:53.270 に答える