1
A
回答
2
如果你想绝对停止NSTimer
你可以使用
[timer invalidate];
但是,如果你想暂时阻止计时器解雇你可以考虑使用
[timer setFireDate:[NSDate distantFuture]];
一旦计划在运行循环中,定时器以指定的时间间隔触发,直到它是无效的。非重复定时器在其触发后立即失效。但是,对于重复计时器,您必须通过调用其无效方法来使计时器对象无效。调用此方法请求从当前运行循环中删除定时器;因此,应始终从安装了计时器的同一线程中调用invalidate方法。使定时器无效立即禁用它,以便它不再影响运行循环。运行循环会在无效方法返回之前或之后的某个时间点删除并释放计时器。一旦无效,定时器对象不能被重用。
3
[timer invalidate];
timer = nil;
0
我不知道你所说的NSTimer thread
的意思,但停止的NSTimer比如你安排,你可以调用[NSTimer invalidate]
。
2
您应该仔细检查以确保您的计时器在使其无效之前有效。
if ([timer isValid]) {
[timer invalidate];
timer = nil;
}
相关问题
- 1. 如何退出退出?
- 2. 如何退出
- 3. 如何退出退出mercurial合并?
- 4. 通过设置NSTimer退出应用程序?
- 5. 如何退出宏
- 6. 如何退出REPL
- 7. 如何退出IFRAME
- 8. 如何退出iframe
- 9. 的NSTimer/NSRunLoop发出
- 10. 如何停止NSTimer
- 11. 如何停止NSTimer
- 12. 如何为NSTimer值
- 13. 如何停止NSTimer
- 14. 如何使用NSTimer
- 15. 如何按退回键退出程序?
- 16. 如何退出ajax请求,如果退出网页
- 17. LLDB - 退出...退出?
- 18. Django:如何退出settings.py
- 19. 如何退出皮尤VENV
- 20. 如何正确退出CAcroApp?
- 21. 如何从cgi退出?
- 22. 如何退出庆典
- 23. 如何退出Contiki代码?
- 24. 如何退出流程?
- 25. 如何退出活套?
- 26. 如何让PHP退出E_NOTICE?
- 27. 如何退出Hackstack Server App?
- 28. 如何onblur退出功能
- 29. 如何退出matlab gui
- 30. 如何退出mootools each()
定时器不在自己的线程中运行,它们运行在同一个线程中。当事件循环重复时,它会检查是否有任何定时器应该被触发,如果它们应该是,runloop会触发它们,但它都发生在同一个线程中。 – dreamlax 2012-01-10 01:56:28