Warning: file_put_contents(/www/wwwroot/go4.iridade.monster/yakpro-po-main/tmp/1781149209_6a2a2e0fe6cbc3.10535309.dat): failed to open stream: No space left on device in /www/wwwroot/go4.iridade.monster/yakpro-po-main/index.php on line 32
xCode - UIKeyboardTaskQueue may only be called from the main thread - Авиационные и компьютерные заметки


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

      Параноидальная защита контента сайта от копирования
      Параноидальная защита контента сайта от копирования

      Некоторые жадные владельцы сайтов настолько дорожат своим уникальным содержимым, размещенном в интернете, что порой удивляешься - как они вообще решились на такое - публично это все выложить в сеть?!? :))) Цифровые скряги внедряют в страницы сайта специальные JS-скрипты, блокирующие выделение текста и возможность сделать клик правой кнопкой, добавляют специальные CSS-стили, блокирующие...




      Использование системы координат WGS-84 в мире
      Использование системы координат WGS-84 в мире

      Международная организация гражданской авиации (ИКАО) предписывает использовать Всемирную геодезическую систему 1984 (WGS-84) или эквивалентную ей в качестве стандарта для указания координат широты и долготы аэронавигациионных данных. В настоящее время далеко не все страны используют геодезическую систему WGS-84 для определения, хранения и публикации аэронавигациионных данных. Не смотря на...




      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. Ситуация не приятная, но не все потеряно, и это можно легко исправить.




      TORA,TODA, ASDA и LDA
      TORA,TODA, ASDA и LDA

      Для расчета взлетно-посадочных характеристик приходится оперировать различными данным, в том числе располагаемыми дистанциями: TORA,TODA, ASDA и LDA. Каждый аэродром должен определять располагаемые дистанции для всех имеющихся ВПП (для каждого торца) для публикации их в АИПе или в НОТАМ.




      Как учить авиационный английский
      Как учить авиационный английский

      Кому-то иностранные языки даются легко, кому-то не очень. Но мировая тенденция популяризации английского языка наблюдается уже довольно давно. Англичане по идее должны гордиться, что их язык выбран в качестве основного иностранного языка, который изучают по умолчанию. Не смотря на то, что официальными языками ИКАО являются в том числе и немецкий, французский и даже русский языки и другие..., фразеология...




      Восхождение на восточную вершину горы Эльбрус с флагом авиакомпании Волга-Днепр
      Восхождение на восточную вершину горы Эльбрус с флагом авиакомпании Волга-Днепр

      Сейчас я уже не помню точно, да это и не важно - с чего все началось…, но в итоге образовалась инициативная группа из 7 человек с твердым намерением совершить восхождение на гору Эльбрус. В целях получения финансовой поддержки было подготовлено письмо и передано руководству нашей организации, в которой мы осуществляем свою трудовую деятельность с предложением в очередной раз прославить (в...




      Как сменить IP-адрес при подключении через DLINK DIR-300
      Как сменить IP-адрес при подключении через DLINK DIR-300

      Интернет-провайдер билайн присваивает своим пользователям динамические IP-адреса. В этом, конечно, есть свои минусы, ведь не зря статический IP-адрес дается за отдельную плату. Но лично я считаю, что динамический IP-адрес гораздо удобнее для Интернет-серфинга. Во-первых, скачивая с некоторых файлообменников (рапидшара, депозитфайлз и им подобные), не нужно ждать, когда закончится тайм-аут до...



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