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

      Как изменить Mac-адрес сетевой карты
      Как изменить Mac-адрес сетевой карты

      Это нужно далеко не всем и довольно редко - менять мак-адрес (mac-address) сетевой карты компьютера. Но, тем не менее, такая необходимость может неожиданно возникнуть. Причины для изменения Mac-адреса: 1. Если интернет-провайдер использует привязку по Mac-адресу, а вы по некой причине вынуждены сменить домашний компьютер и не лишиться доступа к сети. В этом случае нужно для сетевой карты нового компьютера прописать Mac-адрес...




      Aleesoft’s Free iPad Video Converter
      Aleesoft’s Free iPad Video Converter

      Стандартный видеопроигрыватель iPad признает очень мало форматов видео файлов - только *.mov и *.mp4 (MPEG-4). Есть, конечно, видеопроигрыватели сторонних производителей, которые дружат и с *.avi, и с *.flv, но они, в основном, платные. Поэтому для тех, кто хочет смотреть любимые фильмы на iPad с помощью бесплатного видеопроигрывателя необходима программа конвертации. Для этой цели практически идеально подходит Aleesoft’s Free iPad Video...




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

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




      Advego Plagiatus - проверка уникальности текстов
      Advego Plagiatus - проверка уникальности текстов

      Advego Plagiatus - замечательная программа с интуитивно понятным интерфейсом, предназначенная для поиска в Интернете частичных или полных копий текста. Например, написал ты статью - а, оказывается, она уже давным-давно размещена в Интернете на каком-то сайте и написана практически такими же словами :) И, так вот, чтобы не ударить "грязью в лицо", статью эту нужно предварительно проверить на...




      Выборка из БД ARINC424 по любым столбцам
      Выборка из БД ARINC424 по любым столбцам

      Аналогично программе для получения выборки из БД в формате ARINC-424 по коду раздела (5 колонка) и коду подраздела (6 или 13 колонка), данная программа позволяет делать более сложные выборки - с учетом значений любых столбцов базы данных. Программа позволяет сделать любую выборку по заданным пользователем параметрам, точнее по значениям, введенным в любой столбец - хоть во все 132. В приведенном примере сделана выборка из БД -...




      Как написать знак Градуса или Приблизительно?
      Как написать знак Градуса или Приблизительно?

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




      Признаки принадлежности аэродрома
      Признаки принадлежности аэродрома

      В некоторых авиационных справочниках (онлайн или установленных отдельных приложений) по аэродромам есть такой параметр - "Признак принадлежности аэродрома" ("aerodrom usage attribute"), который и определяет эту принадлежность.Помимо общеизвестных признаков принадлежности аэродрома - военные, гражданские и совместного базирования, существует еще несколько. Они малораспространены, но иногда...



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