다음 열거 형이 있습니다.
enum RequestResult: ErrorType {
case TimedOut
case ConnectionFailed
}
내 뷰 컨트롤러에는 다음 코드가 있습니다.
when(promise1, promise2).then { results -> Void in
//work with results
}.error { error in
if let err = error as? RequestResult {
switch err {
case .TimedOut: print("Timed Out")
case .ConnectionFailed: print("Connection Failed")
}
}
그러나 오류는 RequestResult로 풀리지 않습니다. 내 디버거에서 나는 이것을 본다.
"언제"가 무엇이고 어떻게 얻을 수 있는지 이해할 수 없습니다. 오류에 "When"멤버가 없습니다. 이 오류의 출력은 다음과 같습니다.
When(2, RTB.RequestResult.TimedOut)
나는 이것으로 그것을 알아 냈습니다.
err in
guard let promiseError = err as? PromiseKit.Error else {return}
switch promiseError {
case .When(_, let error):
switch error {
case RequestResult.TimedOut:
print("Timed Out")
case RequestResult.ConnectionFailed:
print("Connection Failed")
default: break
}
default: break
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다