从 NSError 解析自定义值

Posted

技术标签:

【中文标题】从 NSError 解析自定义值【英文标题】:Parse custom value from NSError 【发布时间】:2018-10-10 18:13:28 【问题描述】:

当 API 请求失败时,我需要知道失败的尝试次数。后端向错误对象添加了一个属性“尝试”。我怎样才能找到这个值,因为 NSError 不兼容 KV 配对,当我将错误对象记录到控制台时我看不到它。

【问题讨论】:

收到此错误的代码是什么样的? 我正在使用 nsurlsession 处理请求,它提供了 NSData、NSURLResponse 和 NSError 的回调。因此,当请求失败时,后端显然会向错误对象添加“尝试”。如何从 NSError 或 NSURLResponse 中检索此值? 当您说后端时,您是指 Web 服务吗?如果是这样,数据将不会出现在 NSError 中。如果在正文中返回,它将作为标头值在 URL 响应中或在数据本身中。 @Paulw11,好的,它在数据中。因此,在这个特定请求失败并且我需要“尝试”的情况下,错误为零,并且数据有一个包含错误信息的对象。我必须针对这个异常对网络层进行更改。 【参考方案1】:

如果您将 NSURLSession 用于 urlrequest ,那么您将拥有 NSURLSession 响应的委托方法,它们是:

->didReceiveResponse = 在这里你会收到urlrequest已经完成的响应和响应接收状态

->didReceiveData = 在这里您将获得请求的成功响应日期

->didCompleteWithError = 在这里你得到 FAILURE 响应(即 ERROR 回调,每次请求失败时都会调用它,它会为你提供错误数据

【讨论】:

以上是关于从 NSError 解析自定义值的主要内容,如果未能解决你的问题,请参考以下文章

如何根据预先确定的约束值自定义热图颜色?

Combobox值自定义(不通过数据库)

Android Studio基础项目-两个Activity的Intent传值自定义类数据(如数据库数据读取)。

Android Studio基础项目-两个Activity的Intent传值自定义类数据(如数据库数据读取)。

Android Studio基础项目-两个Activity的Intent传值自定义类数据(如数据库数据读取)。

Android Studio基础项目-两个Activity的Intent传值自定义类数据(如数据库数据读取)。