Итак, у меня есть эта функция входа в систему, где я хочу вернуть логическое значение моему контроллеру .xib, где он должен внести некоторые изменения в зависимости от успеха входа в систему.
func login(cpf: String) -> Bool {
let url = URL(string: AccessibilityDataAccessProvider.kLoginURL)
let params = ["username": String.init(describing: cpf)]
var success = false
dataAccessProvider.postSimpleResponse(url: url!, params: params)
.subscribe(onNext: { (userToken) in
let userData = UserDefaults.standard
userData.set(userToken, forKey: AccessibilityDataAccessProvider.userTokenKey)
userData.synchronize()
success = true
}, onError: { (error) in
print("Login Error: \(error)")
}).disposed(by: disposeBag)
return success
}
Метод postSimpleResponse() возвращает объект Observable типа Any?.
Дело в том, что мой метод login() возвращается до того, как логическая переменная success становится истинной в подписке.
Как я могу решить это?
var loginState: Observable<LoginState>
и подписаться на него, чтобы обновлять свой пользовательский интерфейс при каждом изменении. - person Alexander   schedule 16.01.2019