我正准备将NSTimer属性添加到我的一个类中,以便在必要时可以取消它。 我将与+ scheduledTimerWithTimeInterval:
一起使用它我应该使用strong,assign,copy或unsafe_unretained吗? (使用ARC)。
答案 0 :(得分:1)
使用strong
。通常,您还需要覆盖这样的setter:
- (void)setTimer:(NSTimer *)aTimer {
if (aTimer != _timer) {
[_timer invalidate];
_timer = aTimer;
}
}
这样当您更改或清除(nil)计时器时,旧计时器将自动失效(因此将来不会触发)。
如果您执行aTimer != _timer
之类的操作,self.timer = self.timer
可以避免您的计时器失效。虽然你可能永远不会直接这样做,但它有时可能会间接发生。