Давайте разберемся со всем по порядку:
1. Инициализация UILabel происходит во время загрузки view из xib'a и происходит это задолго до того, как вы введете текст :)
2. Изходя из первого пункта, я думаю, вы хотели спросить, "почему ответ появляется так поздно?".
Тут уже все сказал
ManWithBear . Лишь дополню, как это должно выглядеть:
DispatchQueue.main.async { [weak self] in
self?.label.text = temp
}
3. Ну и в конце хочется дать несколько рекомендаций по код-стайлу:
а) писать именно
weakSelf
не стоит. просто
[weak self]
отлично работает. В такой ситуации код читается легче и подсветка синтаксиса работает корректнее;
б)методы с большой буквы не называют
в)если вам надо извлечь несколько optianal'ов подряд, это можно делать в одном операторе if:
if let source = parsedObject as? [String: Any], let text = source["text"] as? [String] {
for temp in text {
print(temp)
self?.label.text = temp
}
}