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

      File Cache Storage не поддерживается
      File Cache Storage не поддерживается

      После обновления Joomla до версии 3.6 или после чистой установки Joomla 3.6 возможно получения ошибки как на самом сайте (FrontEnd), так и в админке (BackEnd) сообщения об ошибке: Error displaying the error page: The file Cache Storage is not supported on this platform. Ситуация не приятная, но не все потеряно, и это можно легко исправить.




      Как скрыть NavigationBar у первого ViewController (Swift)
      Как скрыть NavigationBar у первого ViewController (Swift)

      Иногда на первом ViewController необходимо не отображать NavigationBar, так как он он пустой (не имеет кнопок навигации). В Swift это можно сделать с помощью небольшого куска кода, вставленного в требуемый VeiwController внутрь функции viewWillAppear:




      КТ-200А Обработка аэронавигационных данных
      КТ-200А Обработка аэронавигационных данных

      Процесс подготовки и обработки аэронавигационных данных должен выполнятся в соответствии с определенными критериями, которые будут гарантировать качество аэронавигационных данных. Умные "буржуи" собрались как-то вместе, организовали рабочую группу под эгидой RTCA и создали документ DO-200A/EUROCAE ED-76 "Standards for Processing Aeronautical Data". Российские авиационные власти и главные авиационные...




      Сохранение flash
      Сохранение flash

      Современные сайты часто содержат множество мультимедийного контента, одной из разновидностью которой является flash-анимация (флэшка, флэш-ролик). Флэш ролик представляет собой swf-файл, внедренный в web-страницу. Флэш-анимация может быть как черно-белой, так и цветной, со звуком и без, размером пару килобайт и даже в несколько мегабайт. Некоторые анимации могут на столько понравиться посетителю сайта, что...




      Обновление БД EGPWS T2CAS
      Обновление БД EGPWS T2CAS

      БД для EGPWS/TAWS "T2CAS" предоставляется компанией ACSS (Aviation Communication and Surveillance System) в своем бортовом формате, конвертация уже выполнена, и БД готова для загрузки в систему. Периодичность обновления – по факту выхода новой БД (примерно кардые 3 месяца). Сроки не совпадают с циклами AIRAC. При этом зарегистрированным пользователям на электронную почту приходит уведомление о том, что новая БД...




      Jeppesen FD PRO - версия 2.5
      Jeppesen FD PRO - версия 2.5

      Фирма Jeppesen анонсировала выход в ближайшее время новой версии своего флагманского приложения для EFB на базе iPad - FD PRO v.2.5. PRO - подразумевает "Professional", таким образом Jeppesen старается угодить именно авиационным профессионалам, каждый раз подтверждая статус лидера в аэронавигационных услугах и продуктах. В этот раз разработчики Jeppesen учли максимальное количество замечаний и предложений...




      Apple закрывает программы развертывания DEP и VPP
      Apple закрывает программы развертывания DEP и VPP

      Программы развертывания Apple - Device Enrollment Program (DEP) и Volume Purchase Program (VPP) с 1 декабря 2019 года перестанут существовать. Deployment Programs - DEP и VPP будут объединены в одну и их заменит единая программа - Apple Business Manager (для коммерческих компаний) и Apple School Manager (для образовательных учреждений). Для того, чтобы продолжить использование программой регистрации устройств (DEP) и программой...



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