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

      Открытие файлов Excel в отдельных окнах
      Открытие файлов Excel в отдельных окнах

      Многие пользователи офисного пакета MS Office наверняка замечали неудобную "фишку" программы Excel - невозможность открыть разные файлы в различных окнах программы. Например, хотите вы открыть один xls-файл (или xlsx-файл) на одном мониторе, а второй xls-файл на другом, но у вас ничего не получится! Программа MS Excel не даст вам такой возможности, т.к. по умолчанию файлы Excel открываются в MS...




      Литературный проект Этногенез
      Литературный проект Этногенез

      Литературный проект Этногенез заявил о себе в 2009 году первым произведением "Маруся", а дальше понеслось... Создатели проекта очень грамотно объединили под эгидой литературы реальные исторические события, фантастику, фэнтези и кучу чего-то еще. Проект очень быстро стал популярным, в 2011 году стал частично коммерческим, но, тем не менее, авторы не запрещают размещать копии текстов и аудиотреков на сторонних сайтах.




      Cовершенствование методов сбора и анализа статистических данных по факторам риска
      Cовершенствование методов сбора и анализа статистических данных по факторам риска

      Межгосударственный авиационный комитет 16 ноября 2011 года, Бексаев Введение Необходимость сбора больших объёмов данных, связанных с безопасностью полётов, и обработки этих массивов в кратчайшие сроки всё больше диктует необходимость использования компьютерных технологий при передаче/приёме и обработке данных. В настоящее время всё чаще для сбора и анализа данных используются электронный документооборот, что...




      Swift - как сделать скриншот одной кнопкой
      Swift - как сделать скриншот одной кнопкой

      В некоторых ситуациях пользователям iPhone или iPad может быть не удобно задействовать две руки, чтобы сделать скриншот экрана во время использования приложения, и они были бы счастливы делать это с помощью нажатия на одну кнопку - прямо в интерфейсе приложения. На самом деле ни разу даже не возникало такой мысли - делать скриншот экрана iPhone с помощью одной кнопки в интерфейсе приложения,...




      Загрузка фильмов по Wi-Fi в iPad
      Загрузка фильмов по Wi-Fi в iPad

      В продолжение статьи "Как закачать видео на ipad" возникла необходимость написать новую шпаргалку - в соответствии с "заявками телезрителей" - как выполнить это с использованием Wi-Fi, если планшет заблокирован на подключение к "чужим" компьютерам. Подобная ситуация возможна при использовании корпоративных планшетов, которые были настроены с помощью MDM (были переведены в режим SUPERVISED (управляемые), и для них был активирован запрет на подключение к чужим...




      Ширитон Виталий Иванович - биографический очерк
      Ширитон Виталий Иванович - биографический очерк

      Ширитон Виталий Иванович - полковник ВВС, летал на Л-29, Л-39, МИГ-17, МИГ-21. С 1978 по 1984 годы был командиром полка 809 УАП (в/ч 19109) Харьковского высшего военного авиационного училища летчиков. При нем летный состав впервые в истории части освоил полеты в сложных метеоусловиях при первом минимуме погоды с использованием СДУ и боевое применение по наземным целям с практической стрельбой неуправляемыми...




      Наставление на путь праведный господ авиаторов (НПП ГА)
      Наставление на путь праведный господ авиаторов (НПП ГА)

      Эта книга не претендует на роль настоящего НПП и тем более ФАП, но эти советы - основа безопасности полетов. Все ситуации - знакомыМог дать совет, мог умолчать,Но вот проблема пред тобоюИ надо срочно отвечать.Быть может, автор что-то скажет,И путь решения укажет.



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