Почему такая долгая инициализация UILabel?
Давайте разберемся со всем по порядку:
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
    }
}
Потому что наверняка ответ приходит в бекграунде и вы там же обновляете лейбл, а одно из главных правил iOS разработки:С UI нужно всегда работать из main потока.
Так что оборачивайте weakSelf?.label.text = temp в диспатч на главном потоке.