0
我有兩個類,它們提供了從API獲取數據時報告各種錯誤的委託方法。 HttpAPI
獲取天氣數據,RadarAPI
獲取雷達圖像。下面的代碼位於HomeViewController
,它處理來自每個API的數據或錯誤。用一個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
也會發生錯誤;因此,將推出兩個UIAlertControllers
,這是不推薦的。
如何處理多個錯誤消息並在單個UIAlertController
中顯示這些錯誤?
一次只能顯示一個警報控制器。顯示多個警報也是不好的做法,最好顯示一個警報。關於你的答案,你可以在Swift中提供一些這樣的機制代碼嗎? – wigging
如果要呈現多於1個UIAlertController,請創建您自己的自定義類,並使UIAlertController具有自己的UIWindow,並將其展示給自己。 – TawaNicolas
我不想創建多個警報。我想要一個警報,它將顯示來自'HttpAPI'和'RadarAPI'的多個錯誤消息。 – wigging