2017-05-29 10 views
0

APIからデータをフェッチするときにさまざまなエラーを報告するデリゲートメソッドを提供する2つのクラスがあります。 HttpAPIは気象データを取得し、RadarAPIはレーダー画像を取得します。下記のコードはHomeViewControllerにあり、各APIのデータまたはエラーを処理します。1つのUIAlertControllerで複数のエラーを処理する

// MARK: - HttpAPI Delegate 

extension HomeViewController: HttpAPIDelegate { 

    func apiSessionError(_ error: Error) { 
     // show alert with error from url session 
    } 

    func apiHttpError(_ code: Int) { 
     // show alert with HTTP error code 
    } 

    func apiJsonError(_ error: Error) { 
     // show alert with json error 
    } 

    func apiSuccess(_ json: [String: Any]) { 
     // update app with weather data 
    } 
} 

// MARK: - RadarAPI Delegate 

extension HomeViewController: RadarAPIDelegate { 

    func radarSessionError(_ error: Error) { 
     // show alert for url session error 
    } 

    func radarHttpError(_ code: Int) { 
     // show alert with HTTP response error code 
    } 

    func radarImageError(_ error: String) { 
     // show alert with image parsing error message 
    } 

    func radarSuccess(_ image: UIImage) { 
     // update app with weather radar image 
    }  
} 

気象データの取得やレーダー画像の取得中にエラーが発生した場合は、アラートを表示したいと思います。問題は、HttpAPIにエラーが発生した場合、RadarAPIもエラーとなります。したがって、推奨されていない2つのUIAlertControllersが提示されます。

複数のエラーメッセージを処理し、そのエラーを1つのメッセージに表示するにはどうすればよいですか?UIAlertController

答えて

0

なぜ2 UIAlertControllersは表示できませんか?

とにかく、2種類のアラートを表示したくない場合は、何を表示するかを決める前に両方の応答を待機するメカニズムを試してみてください。

+0

一度に表示できるアラートコントローラは1つだけです。複数のアラートを表示することも悪い習慣ですが、アラートを1つ表示することをお勧めします。あなたの答えに関しては、Swiftにこのようなメカニズムのサンプルコードを提供できますか? – wigging

+0

複数のUIAlertControllerを表示する場合は、独自のカスタムクラスを作成し、UIAlertControllerに自身から提示する独自のUIWindowを作成させます。 – TawaNicolas

+0

複数のアラートを作成したくありません。私は、 'HttpAPI'と' RadarAPI'からの複数のエラーメッセージを表示する一つの警告が欲しいです。 – wigging

関連する問題