我有一个必须从非主线程调用的函数。在该线程中,我试图确定状态栏的方向,如下所示:
let currentInterfaceOrientation = UIApplication.shared.statusBarOrientation
但是我显然会收到这样的运行时警告。
UIApplication.statusBarOrientation() must be used from main thread only
我的问题是,如果需要,如何确定辅助线程上的状态栏方向?使用DispatchQueue.main.sync是正确的方法,但是由于潜在的死锁而存在风险。
var currentInterfaceOrientation = UIInterfaceOrientation.landscapeLeft
DispatchQueue.main.sync {
currentInterfaceOrientation = UIApplication.shared.statusBarOrientation
}
在这里使用Swift的安全方法是什么?
答案 0 :(得分:1)
我有一个必须从非主线程调用的函数。
将方向添加为该函数的参数。