我的应用程序正在使用第三方库,并且在某些设备(例如iOS 13.3(上发生崩溃
尝试在主线程上调用该方法
主线程检查器:在后台线程上调用的 UI API: -[UIApplication statusBarOrientation] PID: 1496, TID: 390696, Thread name: (none(, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
2020-01-28 12:31:47.733875+0000 我的BT哥谭[1496:390696] *** 由于未捕获的异常而终止应用 "NSInternalInconsistencyException",原因:"线程冲突: 预期主线程'
尝试在后台线程上调用该方法
这是错误
- 断言失败 in -[FBSSerialQueue assertOnQueue],/BuildRoot/Library/Caches/com.apple.xbs/Sources/FrontBoardServices/FrontBoard-626.4.1/FrontBoardServices/FBSSerialQueue.m:98 2020-01-28 17:23:47.972336+0000 我的BT哥谭[1773:459656] *** 由于未捕获的异常而终止应用 "NSInternalInconsistencyException",原因:"线程冲突: 预期主线程'
仅供参考: 我总是在后台线程上使用 API 方法,它在大多数设备中都能正常工作,我上面引用的问题仅适用于某些设备。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
[LibObj model_Method:self];
});
看起来,您正在从后台调用 UI 方法...它应该是这样的:
DispatchQueue.main.async {
// use your method...
}
但是,如果您的第三方库已经在幕后执行 DispatchQueue.main 调用,那么当您进行异步调用时,它可能会搞砸......