Я получаю данные с сервера, используя «globalQueue.async», а затем использую результат для обновления пользовательского интерфейса. Я получаю нужные данные с сервера почти в ту же секунду, когда я делаю запрос, и я знаю это, когда печатаю данные в XCode с помощью кода. Но проблема в том, что UILabel в пользовательском интерфейсе обновляется по крайней мере через 8 секунд.
Я понимаю, что я пытаюсь обновить данные стороннего потока в основном потоке, но я выбрал этот подход, потому что пользовательский интерфейс зависал при получении данных с сервера (ничего не работает в то время, когда он пытается получить данные с сервера, и когда данные он показывает данные и включает пользовательский интерфейс) это происходит, когда я использую «DispatchQueue.main.async», поэтому я решил использовать «globalQueue.async», так как он не замораживает пользовательский интерфейс, но я столкнулся с проблемой с «globalQueue.async» поскольку он обновляет данные в пользовательском интерфейсе очень поздно и иногда не может обновить данные в пользовательском интерфейсе, даже когда данные были напечатаны в XCode.
Я потерян, я несколько дней пытался с сильной головной болью и не могу найти способ достичь своей цели - получать данные с сервера и обновлять пользовательский интерфейс, не останавливая пользовательский интерфейс в процессе даже на секунду.
Пожалуйста, помогите.
Вот код ViewController.swift:
try! myobj.createData(request: request, with: { stringReturn in
print("" + stringReturn.result)
self.displayTextArea.text = stringReturn.result// displayTextArea is UILabel field
})