2017-06-18 3 views
1

REST API呼び出しの結果を伝播するためにResult列挙型を作成しました。エラー列挙ケースの生の値を抽出する

enum Result { 
    case success([AnyObject]) 
    case failure(APIError) 
} 

私はまた、ハンドラエラー

enum APIError: Error { 
    case requestFailed(String) 
    case invalidData(String) 
    case invalidQuery(String) 
    case invalidURL(String) 
} 

Error列挙型を持っている私はif caseシナリオでは、この文字列にアクセスするにはどうすればよい

completion(.failure(.invalidURL("Invalid URL"))) 

のような完了の閉鎖にエラーを送信しますか?私は

if case .failure(let res) = result /*, case res.invalidQuery(let invalid) */ { 
    print(res) 
} 

ような何かをしようとしています

どのように私はこれを達成することができますか?

答えて

2

あなたが何をしようとしていることは同じライン上の2つのケースを持っている場合は、そのようにそれを行うことができます働い

if case .failure(let error) = result, case .invalidQuery(let message) = error { 
    print(message) 
} 
+0

おかげで、! – unspokenblabber

関連する問題