我试图找出何时会NSFireDelayedPerform
被触发,什么是这个基本的规则。 但我找不到任何关于此的文档或源代码。 任何人都可以提供一点提示吗?何时NSFireDelayedPerform触发
回答
我遇到这也并认为这可以称为每当一个选择是在指定的延迟(低于2秒)后执行。
[foo performSelector:@selector(f1) withObject:nil afterDelay:2];
下面是主线程上的堆栈跟踪,其中应用程序在延迟20.060秒后死亡。尽管规定了2秒的延迟,但系统花费了更长的时间(超过10秒)来执行此选择器。这意味着,该系统使用一个NSTimer来处理与afterDelay参数performSelector电话。不幸的是,它似乎或许将通话置于主线程的事件队列,然后等待指定的延迟(或更多):
6基金会0x35bfaa6a __NSFireDelayedPerform
7的CoreFoundation 0x3add45dc CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION + 12
我会从这里开始
不存在NSFireDelayedPerform
提及,但它使莫名其妙地感觉,因为这通常是在CFRunLoop
来看待。
而且也许你想在这里看看:
Is there any guide for iOS runloop mechanism?
或实际更基本:
感谢您的回复。实际上,对于相同的用户界面交互,我经历了一些场景,这个“NSFireDelayedPerform”有时会被调用,但不会用于其他场景。比如对于UITableView的滚动或选择,如果交互真的很疯狂,这个“NSFireDelayedPerform”可能会被触发。 – Pei
- 1. 何时触发WebSocket.onmessage?
- 2. 何时触发AVAudioSessionSilenceSecondaryAudioHintNotification?
- 3. 何时触发PropertyChangedCallback
- 4. 何时触摸Rails中的belongs_to触发?
- 5. RxJS - forkJoin何时触发?
- 6. Application_Launching事件何时触发?
- 7. 何时触发cmakes add_custom_command POST_BUILD?
- 8. 何时触发MouseLeave事件?
- 9. 如何避免在回发时触发验证触发器
- 10. 从FormClosing触发时RunWorkerCompleted没有触发
- 11. Window.postMessage()被触发时触发的事件
- 12. Azure时间触发功能不触发
- 13. 编译包体时触发触发器
- 14. 何时发生AFTER DELETE触发器
- 15. 从INSERT触发器更新时触发更新后未触发
- 16. UINavigationBar按钮在触摸条之下发生触发时触发
- 17. 当触发器不应该触发时触发消息
- 18. fsockeopen - 知道何时触发超时
- 19. 如何在切换触发器更改时触发事件?
- 20. 密码验证触发何时不应触发?
- 21. 我可以使用或触发何时触发?
- 22. 如何在不自动触发时为字符串触发COW
- 23. 如何在截断表格时触发触发器?
- 24. 如何在密码更改时触发sql触发器
- 25. 当鼠标点击触发时,如何停止mouse_out触发
- 26. 如何防止未插入行时触发插入触发器?
- 27. 按钮时触发
- 28. 插入时触发
- 29. SetInterval同时触发
- 30. DB2触发超时
你为什么要问它,你得到的是一些崩溃日志上市? – hol