Дополнительный аргумент 'onError' в вызове с использованием RXSwift Single Trait - PullRequest
1 голос
/ 23 апреля 2019

Я получаю очень странную ошибку при использовании 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)

enter image description here

enter image description here

1 Ответ

2 голосов
/ 23 апреля 2019

Свифт Complier иногда очень запаздывает. Особенно когда дело доходит до Rx. Проблема с этой строкой

self.paymentAuthorizationFinishedWithError.onNext(APIResponseError.paymentAlreadyInProgress)

Вы забыли добавить ?, так как используете weak ссылку: self?.paymentAuthorizationFinishedWithError.onNext(APIResponseError.paymentAlreadyInProgress)

...