取消请求的错误处理

iOS*_*iOS 2 exception-handling nserror ios swift alamofire

Alamofire用来发送下载请求.我正在处理SuccessFailure案件如下所示.

Alamofire.request {
     case Success:
          // Update UI
     case Failure:
          // Show Alert message (error!.localizedDescription)
}
Run Code Online (Sandbox Code Playgroud)

一切都很好.

当我回去时viewWillDisappear,我取消任何正在进行的请求.问题是,取消请求会抛出错误消息,并在我不在该屏幕时触发警报.

据我所知,我可以采取两种行动.

  1. 如果由于请求取消而创建错误,请检查条件
  2. 检查它viewController是否还活着
  3. 我也可以设置一个Bool变量viewWillDisappear,这是一个简单的解决方案

如何处理这种情况?

另外如何检查第1点和第2点?

aum*_*ets 7

这是一种更通用的方法,适用于任何设备语言:

斯威夫特4

if (response.error as NSError?)?.code == NSURLErrorCancelled {
   // Do Your stuff
}
Run Code Online (Sandbox Code Playgroud)


Rui*_*res 2

如果您能够找到失败的原因,您应该接受它,所以:Check the condition if the error is created due to request cancel

选项 2 很脆弱,因为您依赖于UIViewController的生命周期。通过新的标志,选项 3 只会让你的逻辑变得更加麻烦。把事情简单化

  • @iOS`错误域=NSURLErrorDomain代码=-999“已取消”` (3认同)