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

      Обновление APN-сертификата MDM-сервера
      Обновление APN-сертификата MDM-сервера

      MDM-системы используют службу push-уведомлений Apple (APN = APNS - Apple Push Notifications), чтобы постоянно поддерживать связь с устройствами Apple через общедоступные и частные сети. Для работы MDM-сервера требуется множество сертификатов, в том числе APNS-сертификат для связи с устройствами. Например, когда администратор MDM-сервера дистанционно устанавливает какую-либо политику, активирует опцию или...




      Программа Qloud для пилотов Qatar Airways
      Программа Qloud для пилотов Qatar Airways

      Авиакомпания Qatar Airways начала внедрение собственного нового приложения для iPad - Qloud. Это мобильное приложение собственной разработки, предназначенное только для использования внутри компании (так называемое Inhouse Application). Программа Qloudбудет обеспечивать всех пилотов авиакомпании Катар Эйрвэйс в режиме реального времени актуальной информацией в том числе - и для принятия решения.




      Швеция изобрела слово, чтобы стыдить людей за полеты
      Швеция изобрела слово, чтобы стыдить людей за полеты

      Greta Thunberg - девочка, которая ненавидит авиацию Странно, что это произошло в одной из стран, расположенной за Полярным кругом, так как именно шведы много и часто летают, чтобы погреть свои замороженные пальцы ног в более тёплых южных странах. Массовая «миграция» из северной Европы в сторону юга обычно начинается к концу лета и достигает пика, когда наступает зимняя полярная ночь. Но сегодня все больше и больше шведов отправляются в долгий путь...




      Шпаргалка - разные запросы для ORACLE DB
      Шпаргалка - разные запросы для ORACLE DB

      Аналогично шпаргалке по MySQL - подборка запросов для ORACLE.




      Jeppesen Text Viewer
      Jeppesen Text Viewer

      Программа Jeppesen Text Viewer - это электронная замена текстовой и графической информации, содержащейся в передней (без графики) части сборников Jeppesen. Jeppesen Text Viewer предлагается как бесплатная опция для клиентов, пользующихся сборниками Jeppesen - это выгодно для клиентов, пользующихся бумажными носителями аэронавигационной информации.




      Как изменить размер значков на рабочем столе Windows 7
      Как изменить размер значков на рабочем столе Windows 7

      Слепым эту статью не читать! :) После приобретения нового компьютера или ноутбука с становленной операционной системой Windows 7, а, может быть, просто вместо старого и доброго ХРюши (Windows XP) в неизбежном процессе upgrade на Windows 7 на рабочем столе созерцаем неестественно крупные иконки: Мой компьютер, Корзина,... и др. Так как многие пользователи частенько "заваливают" свой рабочий стол различными ярлыками, папками, файлами,...




      Как использовать промокод appstore
      Как использовать промокод appstore

      Я не часто создаю промокоды, а еще реже ими пользуюсь сам и поэтому каждый раз забываю - куда код вставлять, чтобы использовать, хорошо, что у меня есть эта шпаргалка :)



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