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

      Программа Jeppesen Mobile TC
      Программа Jeppesen Mobile TC

      Программа Jeppesen Mobile TC является первым коммерческим аэронавигационным продуктом от фирмы Jeppesen для iPad. Программа включает в ребя 2 раздела: схемы аэродромов (кроки, заход на посадку, SID, STAR и др.) и текстовая часть сборников Jeppesen (ATC, Airport Directory, Meteorology и др...). В 2011 году Jeppesen анонсировал следующую программу - Jeppesen Mobile Flite Deck (Jepp Mobile FD),...




      Как отключить RoutePack Wizard у Jeppesen e-Link
      Как отключить RoutePack Wizard у Jeppesen e-Link

      Jeppesen имеет широкую линейку специализированного авиационного программного обеспечения, в нее входят как широко известные (FliteMap, JeppView, JSUM), так и относительно редкие для масс программы. Для многих клиентов Jeppesen предлагает программу e-Link for Windows - это практически аналог программы JeppView, но только без модуля FliteDeck. Таким образом, программа Jeppesen e-Link for Windows...




      Как узнать IP-адрес сайта
      Как узнать IP-адрес сайта

      В сети интернет есть несколько сервисов, которые могут сообщить IP-адрес сайта. Зачастую, эти сайты кроме ввода имени домена требуют ввести капчу, иногда имя и адрес электронной почты... - вот такая бюрократия! Для того, чтобы определить IP-адрес DNS-сервера, к которому относится сайт, точнее его доменное имя, и без ввода всяких дополнительных даных, существует несколько способов. Самый простой - это через...




      Фразы про МУЗЫКУ (MUSIC)
      Фразы про МУЗЫКУ (MUSIC)

      Выражения, в которых используется слово МУЗЫКА (MUSIC), использование их в повседневной английской речи и сравнение с русскими аналогами. 1. AND ALL THAT JAZZ (досл. «и весь этот джаз»). По-русски это означает: и все, что с этим связано (в контексте того, о чем идет речь).Пример: She likes cooking and all that jazz.Она любит готовить и все, что с этим связано.




      Apple iOS 11 не поддерживает 32-битные приложения
      Apple iOS 11 не поддерживает 32-битные приложения

      В июне 2017 прошла всемирная конференция для разработчиков на платформах Apple (WWDC - Apple Worldwide Developers Conference) на которой было официально заявлено со стороны Apple, что, операционные системы macOS High Sierra и iOS 11 все последующие за ними не будут поддерживать 32-битные программные приложения. Таким образом, на компьютеры Mac с операционной системой macOS High Sierra и на планшеты...




      Чек-лист по подготовке к Discovery Phase
      Чек-лист по подготовке к Discovery Phase

      Дискавери фаза (Discovery Phase) — процедура сбора информации, выполняемая с целью понимание отрасли, для которой разрабатывается продукт, бизнеса Вашего заказчика и целевой аудитории. Важно получить глубокое понимание ожиданий заказчика, лиц, принимающих решения с его стороны, а также конечных пользователей в отношении продукта. Основной целью предварительного анализа является предоставление технического предложения...




      Как установить на новый iPhone приложения, которых нет в Appstore
      Как установить на новый iPhone приложения, которых нет в Appstore

      С января неполноценно использовал новый телефон, больше эксплуатируя старый, а тут что-то накатило, и эксперимент удался! У тинькова вышло новое приложение для яблофона, установил себе - пока враги не наябедничали, и ябло-админы не удалили из магазина. Потом на всякий случай решил его забэкапить в виде IPA-файла (не путать с пивом! :)



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