xCode - UIKeyboardTaskQueue may only be called from the main thread

Если xCode при компиляции проекта ругается на часть кода и выдает ошибку, например, такую: 

 

Thread 4: Exception: -[UIKeyboardTaskQueue waitUntilAllTasksAreFinished] may only be called from the main thread.

 

Это означает, что данный кусок кода должен выполняться в главном потоке, а не в дополнительном.

Для исправления ситуации нужно поместить этот кусок кода внутрь блока DispatchQueue.main.async.

Так:

DispatchQueue.main.async(execute: {
// здесь вставить свой код
 })

 Или (сокращенный вариант) так:

DispatchQueue.main.async {

                    // здесь вставить свой код

                }

 

 Пример:

 

            do {

                let json = try JSONSerialization.jsonObject(with: data, options: [])

                                

                let myRequest = try JSONDecoder().decode(MyRequest.self, from: data)

        

        // токен и имя тогда можно получить так:

                var myToken = myRequest.token

                var myName = myRequest.callsign

                

        // отобразить Username и токен в интерфейсе (для отладки):

                DispatchQueue.main.async(execute: {

                    self.usernameLabel.text = String(myName)

                    self.tokenLabel.text = String(myToken)

                })

                                

            } catch {

                // модальное окно - если не верные логин-пароль:

                DispatchQueue.main.async {

                    let modalWindow = UIAlertController(title: "Login Error", message: "Username or password is wrong :( ", preferredStyle: .alert)

                    let okButton = UIAlertAction(title: "Close", style: .default) {

                        (ACTION) -> Void in

                    }

                    modalWindow.addAction(okButton)

                    self.present(modalWindow, animated: true, completion: nil)

                }

               

            }

         

Комментарии (0)

Здесь не опубликовано еще ни одного комментария

Оставьте свой комментарий

  1. Опубликовать комментарий как Гость.
0 Значки
Вложения (0 / 3)
Поделитесь своим местоположением

      Как настроить skype
      Как настроить skype

      Многие пользуются бесплатной программой skype. Но крайние версии скайпа уже не так лояльны к пользователям - программа стала слишком самостоятельной и в некоторых случаях напрягает своими действиями. Плохие черты характера skype стали более активно проявляться после покупки скайпа компанией Microsoft. Многим не понравилась эта "сделка с дьяволом", но популярность скайпа не сильно уменьшилась...




      Коды ИКАО/ИАТА воздушных судов и аэропортов
      Коды ИКАО/ИАТА воздушных судов и аэропортов

      Каждому "нормальному" типу воздушного судна (ВС) присваивается код ИКАО и код ИАТА. Код ИКАО состоит из 4 знаков (букв латинского алфавита и цифр). Код ИКАО для ВС в первую очередь используется при планировании полетов - указывается в 9 поле флайтплана (FPL).




      JeppView против Аэропорт Оптима
      JeppView против Аэропорт Оптима

      Всем давно известно, что американская фирма Jeppesen является лидером в области аэронавигационных данных, будь то чисто навигационные данные (ARINC-424 и пр.), данные по препятствиям или различные авиационные компьютерные приложения. Другие поставщики аэронавигационных продуктов тоже стараются и создают свои варианты. Давайте сравним как-бы аналогичные продукты от Jeppesen и от ФГУП ЦАИ (бывшее ЦАИ ГА).




      Идеальный тестер
      Идеальный тестер

      Любой сотрудник некрупной IT-компании подтвердит, что четверг – самый скучный день недели. В самом деле - в понедельник все разгребают пришедшую за выходные почту, ругаются с поставщиками кофе и воды для кулера, и курят на лестнице, рассказывая друг другу анекдоты для борьбы со сном и похмельем. Во вторник задачи розданы, силы свежи, и код пишется на одном дыхании. В среду количество полезной...




      Установка SSL-сертификата на MDM-сервер Apple
      Установка SSL-сертификата на MDM-сервер Apple

      Для полноценной работы по администрированию мобильных устройств Apple с помощью MDM-сервера (Profile Manager) очень желательно использовать SSL-сертификат, выданный авторизованным центром сертификации. Можно, конечно, использовать и самоподписанный сертификат, созданный с помощью самого MDM-сервера - часть задач он будет решать. Но, тем не менее, будут некоторые ограничения, не позволяющие легко и просто управлять...




      Кодирование Grid MORA в БД Arinc-424
      Кодирование Grid MORA в БД Arinc-424

      The Grid MORA - (Grid Minimum Off Rate Altitude) - минимальная абсолютная высота вне маршрута (сетчатая). Имеет код раздела и подраздела - A и S соответственно при кодировании в БД ARINC-424. По сути, AS-записи содержат таблицу высот. Каждая запись (строка) содержит 30 блоков, а поля "Начальная широта" и "Начальная долгота" совместно определяют нижний левый угол для первого блока каждой записи.




      Ширитон Виталий Иванович - биографический очерк
      Ширитон Виталий Иванович - биографический очерк

      Ширитон Виталий Иванович - полковник ВВС, летал на Л-29, Л-39, МИГ-17, МИГ-21. С 1978 по 1984 годы был командиром полка 809 УАП (в/ч 19109) Харьковского высшего военного авиационного училища летчиков. При нем летный состав впервые в истории части освоил полеты в сложных метеоусловиях при первом минимуме погоды с использованием СДУ и боевое применение по наземным целям с практической стрельбой неуправляемыми...



Яндекс.Метрика
Сайт работает на быстром VPS/VDS хостинге от FASTVPS