我有一些线程在做繁重的工作,而我的主线程处理 UI 的东西。线程有时会回调到主线程以更新进度条。
总而言之,它不是那么稳定。我已经解决了与逻辑有关的问题,但特别是一个问题仍然存在。我有一些类似于停止按钮的代码,这意味着线程在下次检查发生的情况时不会尝试更新自身。
有时,当我按下停止按钮时,我会收到此错误:
-[NSRunLoop isEnabled]:无法识别的选择器发送到实例...
如果我在线程工作阶段结束时按下停止按钮,似乎会发生这种情况。在此期间,它并没有做太多事情,除了:
- 释放一些 OpenGL 内存
- 在主线程上调用 final 方法
- 耗尽其自动释放池
- 并返回
但坦率地说,错误信息太神秘了,我什至不知道从哪里开始。任何人都可以对 NSRunLoop 有所了解,这个“isEnabled”方法可能是什么,或者对可能出现的问题进行一般性的刺探?