我有一个必须从非主线程调用的函数。在那个线程中,我试图像这样确定状态栏的方向:
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 的安全方法是什么?