rob*_*obm 37 objective-c ios xcode7
对于搜索,错误消息是:
此应用程序正在从后台线程修改autolayout引擎,这可能导致引擎损坏和奇怪的崩溃.这将在将来的版本中导致异常.
我知道这意味着从后台线程调用一些UIKit代码,我知道解决方案是将代码包装进去
dispatch_async(dispatch_get_main_queue(), ^(void){ <code> });
我的问题是找到这样做的地方,因为没有任何打印的堆栈跟踪引用我的应用程序代码.我证明这是否定的证据是在调试输出窗口中搜索(命令-f)我的应用程序的名称; 我有24个堆栈跟踪被丢弃,我的应用程序名称不在其中任何一个,除了顶部有错误消息.我可以发布其中一个,但这似乎没有用.
在我今天工作的情况下,在转换视图控制器viewWillDisappear()
之前和之后都会发生这种情况viewWillAppear()
.我发现我的部分代码要包装dispatch_async()
,但现在都处理完了.我有断点和调试消息,其中分配和取消分配与视图控制器相关的对象,并且它们都在异常消息出现后触发.在调试和发布模式下,模拟器和我的iOS9 iPhone都会发生这种情况.
如何识别显然修改UI的后台代码?
Mah*_*dam 55
此代码PSPDFUIKitMainThreadGuard导致主线程外的UIKit访问断言
使用步骤:
PSPDFAssert
定义移动到文件的第一个PSPDFLogError
因为它没有定义<UIKit/UIKit.h>
您的应用程序将崩溃并停止任何尝试从后台线程修改任何UI元素
快速使用以下代码:NBUIKitMainThreadGuard
归档时间: |
|
查看次数: |
32177 次 |
最近记录: |