【问题标题】:Alamofire Network error exceptions handlingAlamofire 网络错误异常处理
【发布时间】:2020-07-28 19:50:54
【问题描述】:

我目前正在为 iOS 开发一个应用程序。我想要实现的大部分功能我已经完成了,但我确实需要一个特别的功能 - 网络错误处理。

例如:一个用户试图在我的应用程序中刷新他的数据。与其让我的应用程序崩溃或根本不做任何事情,我更希望能够捕获、识别该异常,然后使用 AlertDialogs 在屏幕上显示相应的消息。例如:

  • 网络错误 - 标题;
  • 无法访问主机,请检查您的网络连接并重试 - 消息;
  • 确定 - 按钮;

我能够在我的 Android 应用程序中使用它,它非常有用,但是,我对 Swift 和 iOS 开发还很陌生,所以,请在这里帮助我并指出正确的方向。

我目前正在使用最新的 Alamofire 发送 HTTP 请求,这是我在应用程序中实现的 HTTP 请求示例。

func loadProfile() {
   let url = Constants.profileURL
   let headers: HTTPHeaders = ["Cookie": "username; password"]
   AF.request(url, method: .post, headers: headers).response {response in
      if let data = response.data, let dataString = String(data: data, encoding: .utf8) {
         if  dataString.contains(Constants.loginSuccess) {
             //Do something
         }
      }
   }
}

【问题讨论】:

  • 那么,您是在寻找网络错误或在 ios 中显示类似于 android 的警报的方法吗?
  • @Frankenstein 我正在寻找网络错误,我知道如何显示警报对话框

标签: ios swift alamofire


【解决方案1】:

Alamofire 的DataResponse(以及所有响应类型)包含序列化的Result。您可以使用该值来检查序列化以及一般请求是成功还是失败。然后,您可以将 result 值传递给完成处理程序,以根据需要进行处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 2012-09-15
    • 2011-04-03
    相关资源
    最近更新 更多