从其他线程调用UIKit方法

时间:2018-11-11 11:58:51

标签: ios swift multithreading uikit ios-multithreading

我有一个必须从非主线程调用的函数。在该线程中,我试图确定状态栏的方向,如下所示:

   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的安全方法是什么?

1 个答案:

答案 0 :(得分:1)

  

我有一个必须从非主线程调用的函数。

将方向添加为该函数的参数。