Вызов методов UIKit из других потоков - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть функция, которая должна вызываться из неосновного потока. В этой теме я пытаюсь определить ориентацию строки состояния следующим образом:

   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 голосов
/ 11 ноября 2018

У меня есть функция, которая должна вызываться из неосновного потока.

Добавить ориентацию в качестве аргумента этой функции.

...