2

我正要在我的一个类中添加一个 NSTimer 属性,以便可以在必要时/如果需要取消它。我将与 +scheduledTimerWithTimeInterval 一起使用它:

我应该使用 strong、assign、copy 或 unsafe_unretained 吗?(带弧)。

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 回答