如何处理MVVM模型中视图控制器中的错误

时间:2017-11-07 07:30:42

标签: ios swift rx-swift moya rx-cocoa

以下是我的代码,用于发出请求并将其绑定到UI元素

func signUpService(_ signUpButtonTap: Observable<Void>, _ userAndPassword: Observable<(String, String)>) -> Observable<Response> {
    return signUpButtonTap
        .withLatestFrom(userAndPassword)
        .flatMapLatest{
            input ->  Observable<Response> in
            return Observable.create { observer in
                let userData = Creator()
                userData?.username = input.0
                userData?.password = input.1
                return provider.request(.signUp(userData!)).filter(statusCode: 201).subscribe{  event -> Void in

                    switch event {
                    case .next(let response):
                        observer.onNext(response)
                        print("Success response", response)

                    case .error(let error):
                        let moyaError: MoyaError? = error as? MoyaError
                        let response: Response? = moyaError?.response
                        let statusCode: Int? = response?.statusCode
                        print("Error response", response?.statusCode)
                        observer.onError(AuthenticationError.server)

                    default:
                        break
                    }

                }
            }
        }.observeOn(MainScheduler.instance)
}

在我看来,我正在做以下

self.viewModel.signedUp?.bind{response in
            self.displayPopUpForSuccessfulLogin()
            }.addDisposableTo(disposeBag)
    }

每当我点击错误块时,应用程序崩溃。它说绑定错误。我无法将错误绑定到UI元素。

如何在Rxswift绑定中处理错误。 如果我从服务器获得零响应,我该如何处理它。

任何帮助将不胜感激。谢谢

0 个答案:

没有答案