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)

                }

               

            }

         


      Сбой установки профиля. iPad не активирован
      Сбой установки профиля. iPad не активирован

      При использовании Программы Развертывания (Deployment Program) BYOD при установке профиля регистрации (Enrollment Profile) мобильного устройства на MDM-сервере, установка профиля может не выполнится, а мобильное устройство отобразит сообщение с ошибкой: Сбой установки профиля. iPad не активирован При установке профиля регистрации на контролируемые устройства (supervised devices) такая ошибка не может быть в принципе. Но если планшет является личным устройством, и...




      Короткая история про закрылки
      Короткая история про закрылки

      ... Разбиваются обычно долб#&бы. Вот сидят десять экипажей, водку пьют. Напились, и вот вдруг один начинает: - Да вот что вы, гражданские, вы летать не умеете. Вот мы военные - круто летаем, закрылки перед взлетом не выпускаем!




      Jeppesen FliteDeck Pro  - версия 2.9.0
      Jeppesen FliteDeck Pro - версия 2.9.0

      Очередное обновление флагманского приложения для EFB - Jeppesen FliteDeck Pro. Как говориться, нет пределов для совершенства, особенно, если это касается авиационного программного обеспечения для Electronic Flight Bag. В приложении Jepp FD Pro версии 2.9 появилась панель управления, совмещенная с рабочим полем приложения (расположена слева).Пилотам больше не нужно переключаться между вкладками – Схемы (Terminal...




      История Jeppesen
      История Jeppesen

      Компания, столь известная в мире, названа в честь своего основателя - Элри Бергера Джеппесена (Elrey Berger Jeppesen). Его имя навсегда останется в истории мировой авиации. Этот человек не только создал новый вид авиационного производства - обеспечение документами аэронавигационной информации, но и заложил основу для разработки стандартов построения схем захода на посадку по приборам. Элри...




      Проиндексировать сайт
      Проиндексировать сайт

      Для того, чтобы ваш сайт разные люди могли находить через свои любимые поисковые системы, будь то Яндекс, Гугл, Рамблер и др., нужно, чтобы эти самые поисковые системы проиндексировали ваш сайт. Сами они это делают очень редко, не удивлюсь нисколько, если они это саомостоятельно ВООБЩЕ НИКОГДА не делают. Так вот, поэтому нужно им дать волшебный пендель, а именно - оформить запрос на индексацию. Сроки индексации...




      Как восстановить флэшку с файловой системой RAW
      Как восстановить флэшку с файловой системой RAW

      Если ваша любимая флэшка в один "прекрасный" день отказывается работать, а именно при попытке открыть ее выдает сообщение: "Нет доступа к К:\ (или другая буква, присвоенная флэшке) Файл или папка повреждены. Чтение невозможно." И нет возможности ни скопировать файлы с флэшки, ни сделать что-то другое. Если открыть Мой компьютер и кликнуть на букве флэшки правой кнопкой мыши и посмотреть свойства, то увидим, что файловая...




      Ошибки Jeppesen FD PRO
      Ошибки Jeppesen FD PRO

      17 октября программа Jeppesen FD PRO получила одобрение от EASA (European Aviation Safety Agency) как програмный продукт для EFB. Одновременно с программой Jeppesen FD PRO была одобрена (сертифицирована) программа Jeppesen TC PRO.



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