注意:这个问题与
Warn on calls to UIKit from background threads有关,但没有给出以下两种方法的答案.
我有一个应用程序屏幕快速闪烁的问题.我以前已经有了这个问题,这是因为在主线程之外更新UI元素.
所以我把很多地方放了下面的代码:
assertMainThread();
这是:
#define assertMainThread() NSAssert([NSThread isMainThread],@"Method called using a thread other than main!")
当然,我不能用assertMainThread()覆盖整个代码,因为有很多地方,一些代码以合法的方式被背景GCD队列使用.
我看了很多地方,但是找不到XCode或者LLDB在主线程之外更新UI元素的方式.我以为可以使用符号断点或其他一些机制来破坏UIKit中常见的方法在主线程之外调用的地方,但是找不到方法.
我还以为UIKit可以在运行时发出这样的呼叫吗?或者至少给我们一些帮助调试这些问题的工具.
我看过的另一种方法(但没有尝试)是使用一些代码覆盖技术,并尝试在视觉上在代码的什么位置提取什么线程运行,但没有去那条路线.
你有什么想法来解决这个问题吗?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。