说我有一个视图控制器。带ARC的NSTimers寿命
在我的视图控制器,我计划从一些其他类调用每9秒方法:
redTimer=[NSTimer scheduledTimerWithTimeInterval:9 target:appDelegate.koule selector:@selector(fbWander) userInfo:nil repeats:YES];
我有这几个问题。
如果我没有将实例变量redTimer分配给返回的NSTimer,该怎么办?会发生什么?该方法会每9秒钟被调用一次吗?
现在,由于我已将红色定时器分配给定时器,如果redTimer被分配了不同的定时器(因此没有任何东西会指向我的原始定时器了)会发生什么情况,定时器是否会死亡并停止重复?
如果我将它分配给redTimer,然后我的视图控制器被销毁,该怎么办?每隔9秒会停止一次该方法吗?
在这些情况下,计时器及其动作会发生什么?
感谢
对于使用scheduledTimerWithTimeInterval创建的重复计时器...我倾向于将它们设置为弱实例变量(或属性)。然后,当我想停止定时器时,我只是使用像'[myTimer invalidate];'的代码。这会导致runloop释放计时器。它被取消分配,然后系统将我的弱引用归零。如果我然后尝试向计时器发送第二个无效消息,则弱iVar现在为零,因此该呼叫不会执行任何操作。这意味着我不需要同时使计时器无效并将其设置为零,并且我可以发送无效计时器以确保计时器正在运行。 –