loogle18
@loogle18

Как изменить глобальную переменную контроллера?

Добрый день! Помогите новичку изменть переменную users LoginViewController'a. Вот код ниже Вне метода UserService переменная юезра, которая изменятся в блоке равна пустому массиву, в то время, как внутри блока все рабоатет и она равна массиву юзеров.

Не могу понять в чем дело. Возможно, Вы подскажите другое решение моей проблемы.

class LoginViewController: UIViewController {
    var users = [User]()

    override func viewDidLoad() {
        UserService.getUsers() { users in
            self.users = users
            print(self.users) // Здесь выводятся юзеры
            print("1: \(self)") // Здесь LoginViewController
        }
        print(self.users) // Здесь выводится пустой массив
        print("2: \(self)") // Здесь LoginViewController
    }
}

P.S. заранее спасибо за терпение и помощь!
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
Возможно, UserService.getUsers - это асинхронная операция. В этом случае код в замыкании выполнится позже, чем код после вызова getUsers.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы