#swift #rx-swift
#swift #rx-swift
Вопрос:
Я получаю очень странную ошибку при использовании RxSwift. Я вызываю службу, которая является единственным признаком, и когда я просто печатаю ошибку, мой код компилируется без проблем, но если я попытаюсь сделать что-то еще в «onError», код не компилируется. У кого-то была такая же проблема?
Фрагмент кода, который не компилируется:
NetworkManager.shared.authorizeService(with: parameters)
.subscribe(onSuccess: { [weak self] status in
}, onError: { [weak self] error in
paymentAuthorizationFinishedWithError.onNext(APIResponseError.paymentAlreadyInProgress)
}).disposed(by: bag)
Код, который компилирует:
NetworkManager.shared.authorizeService(with: parameters)
.subscribe(onSuccess: { [weak self] status in
}, onError: { [weak self] error in
print(error)
}).disposed(by: bag)
Ответ №1:
Swift complier иногда сильно отстает. Особенно когда дело доходит до Rx. Проблема в этой строке
self.paymentAuthorizationFinishedWithError.onNext(APIResponseError.paymentAlreadyInProgress)
вы забыли добавить, ?
поскольку используете weak
ссылку: self?.paymentAuthorizationFinishedWithError.onNext(APIResponseError.paymentAlreadyInProgress)