Получение ошибки времени выполнения в Swift 4.2 для существующего кода Objective C - PullRequest
0 голосов
/ 23 октября 2018

Это ошибка:

- [UIApplication statusBarOrientation] должен использоваться только из основного потока

statusBarOrientation используется в двух местах в моем коде.

  1. [[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(positionHUD:) 
                          name:UIApplicationDidChangeStatusBarOrientationNotification
                          object:nil];
    

Этот файл находится в файле Objective-C .m ^^

UIInterfaceOrientation orientation = UIApplication.sharedApplication.statusBarOrientation;

Пожалуйста, помогите с любой подсказкой или обойдите это.Спасибо!

1 Ответ

0 голосов
/ 24 октября 2018

Маловероятно, что проблема исходит из (1);Вероятно, ошибка связана с тем, что вы читаете элемент statusBarOrientation из потока, отличного от основного.

Вот как вы можете прочитать statusBarOrientation из основного потока:

dispatch_async(dispatch_get_main_queue(), ^(void){
    // Now, we are in the context of the main (GUI) thread. You can perform any GUI updates here.
    self.frame = [[[UIApplication sharedApplication] delegate] window].bounds;
    UIInterfaceOrientation orientation = UIApplication.sharedApplication.statusBarOrientation;
    // Put any other code that makes use of the "orientation" variable inside here

});

С этого момента все зависит от того, что вы хотите сделать с переменной orientation.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...