[英]RxSwift , how to return error with .code?
func loginClicked(){
self.networkingSession.deviceRegister().map { _ in}
.observeOn(MainScheduler.instance)
.subscribe(onSuccess: { [weak self] _ in
self?.didSignIn.onNext(())
},onError: { [weak self] err in
print(">>>>>>> What \(err.localizedDescription)")
self?.didFailSignIn.onNext(err)
})
.disposed(by: disposeBag)
}
在我的func deviceRegister() -> Single<DeviceRegisterResponse>
,我返回 .failure 有兩種錯誤類型:
single(.error(NSError(domain: "Fail Case A",code: 999, userInfo: nil)))
single(.error(NSError(domain: "Fail Case B",code: 111, userInfo: nil)))
我想在onError
指出一個錯誤,並為case A
和case B
創建一個切換條件。
不幸的是,除了err.localizedDescription
之外,我在 err 中找不到任何信息。
將您的err
轉換為NSError
。 它有一個code
屬性。
let err1 = err as NSError
print(err.code)
您正在發送NSError
,但在鏈中它被抽象為Error
。 因此,在接收時,您可以將其轉換回NSError
。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.