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)
Поделитесь своим местоположением

      URL-encoding & ASCII Characters
      URL-encoding & ASCII Characters

      Современные web-технологии поддерживают не только якобы сложные русские тексты (по сравнению с попсовой латиницей), но и всякие китайские и японские иероглифы и другие непонятные загогулины. Но раньше такого счастья не было, и web-разработчикам приходилось использовать специальные комбинации знаков для кодирования специальных символов, таких как вопросительный знак, восклицательный знак,...




      Авиакомпания Monarch Airlines выбрала Flightman EFB
      Авиакомпания Monarch Airlines выбрала Flightman EFB

      Авиакомпания Monarch Airlines (Великобритания) выбрала программу производства фирмы Flightman для использования в своих Electronic Flight Bag (EFB) , чтобы обеспечить летные экипажи аэронавигационной информацией в рамках повышения эффективности работы и снижения затрат. В июле 2011 года авиакомпания Monarch Airlines подтвердила, что она будет устанавливать комплекс программного обеспечения от Flightman в свои EFB для всего их парка воздушных судов. Авиакомпания Monarch Airlines изначально использовала в...




      Jeppesen Mobile FliteDeck версия  2.0
      Jeppesen Mobile FliteDeck версия 2.0

      Сегодня ночью (по Московскому времени, когда в американском Денвере в это время был солнечный день) фирма Jeppesen представила на всеобщее обозрение видеоролик с анонсом новой версии программы Jeppesen Mobile FliteDeck - v2. К сожалению пока не раскрывается дата, когда можно будет вживую протестировать эту программу. Действующая версия программы Jeppesen Mobile FliteDeck, существующая с прошлого года на данный...




      Проверка сроков действия НБД Jeppesen в EFB
      Проверка сроков действия НБД Jeppesen в EFB

      Не смотря на информацию в статье "Срок действия баз данных Jeppesen для EFB" у некоторых товарищей периодически возникают вопросы относительно актуальности баз данных Jeppesen в программах EFB. С одной стороны, их вопросы вполне логичны, так как интерфейс программы Jeppesen FD PRO все еще не идеален, и некоторые моменты весьма не однозначны для пользователей. Например, если открыть в приложении Jeppesen FD PRO страницу Updates, то можно увидеть, что...




      Установка программы Jeppesen Services Update Manager (JSUM)
      Установка программы Jeppesen Services Update Manager (JSUM)

      Программа Jeppesen Services Update Manager (JSUM) предназначена для обновления навигационных баз данных различных спутниковых навигационных систем (Honeywell Primus Epic, Honeywell Apex, the Avidyne EX5000 MFD, Garmin 155, 430/530 Series GPS, Garmin G1000 Flight Deck и др.). Запись БД осуществляется с помощью специального карт-ридера - так называемой приставки SkyBound.




      Как отобразить html, php-код или Java-скрипт на странице в Joomla с помощью плагина Sourcerer
      Как отобразить html, php-код или Java-скрипт на странице в Joomla с помощью плагина Sourcerer

      Иногда бывает необходимо отобразить HTLM-код (или PHP-код или java-скрипт) в статье на сайте. Обычно текстовый редактор нещадно обрезает все теги и скрипты, и создателю статьи приходится делать скриншот кода и вставлять его как картинку. С одной стороны это просто и надежно - вставить легко и код не может повредиться, пока жива сама картинка. Но для посетителей сайта такая ситуация не очень приятная...




      Внедрение системы ADS-B в Австралии
      Внедрение системы ADS-B в Австралии

      Австралийские авиакомпании считаются самыми безопасными в мире благодаря авиакомпании Qantas Airways, у которой с 1973 года не зафиксировано ни одного случая, повлекшего человеческие жертвы! Привыкнув быть лидерами во всем, австралийцы анонсировали новые изменения в правилах полетов в воздушном пространстве Австралии. С 12 декабря 2013 года Австралия вводит новое требования: все воздушные суда, в...



Яндекс.Метрика