我厌倦了错误处理

Posted

技术标签:

【中文标题】我厌倦了错误处理【英文标题】:I'm SOO sick of error handling 【发布时间】:2017-05-21 22:53:53 【问题描述】:

Json、xcode、swift 3、JWT。我试图找到“non_field_errors”的值


"non_field_errors": [
    "Unable to login with provided credentials."
]
   

我已经在这里呆了好几个小时了。首先,我为 200 和 400 错误编码,现在我正在处理 json,但我无法理解。这是我的代码

if let session_code = server_response["non_field_errors"] as? [Any:Object] 

但是现在呢?我知道我需要更深入,但如何?

【问题讨论】:

仅供参考 - 你想要 as? [String],因为 "non_field_errors" 代表 String 的数组(至少据我从你发布的示例 JSON 中可以看出)。 我有,在帖子中更改了它,因为我认为这是我应该开始的地方。 试试这个if let session_code = server_response["non_field_errors"] as? NSArray 【参考方案1】:

non_field_errorsStrings 的数组。因此,您必须将铸件修复为:

if let session_codes = server_response["non_field_errors"] as? [String]  ... 

【讨论】:

是的,我通过研究发现了这一点,那么我要做的就是在那之后打开它? self.error_message = session_error as?细绳?如果 session_error 是 session_code 我不太明白你的评论。您不必在 if 子句中解开 session_code 打印的是 ["Unable to login with provided credentials."],我如何在没有 [] 的情况下将其转换为字符串? non_field_errors 是一个数组。你可以遍历它for error in sessionCodes,获取第一个sessionCodes.first,或者对数组做任何你想做的事情。 @Denis 这是一个数组。在任何语言中,您都希望人们知道如何使用数组。只需获取第一个元素。我个人不知道 swift,但如果这是 C++,它将是 session_codes[0]

以上是关于我厌倦了错误处理的主要内容,如果未能解决你的问题,请参考以下文章

我们能否处理错误“无法将 BOOL 类型的值转换为预期的参数 UIiew”

你能在 Swift 中创建匿名内部类吗?

厌倦了我的 Rails 应用程序的 Heroku SSH 混乱

使用 Express 处理 Prisma 错误

错误“事件处理程序”不是“处理”ECONNRESET

JSON.Net无法在自定义JsonConverter中反序列化json数组