我厌倦了错误处理
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_errors
是 String
s 的数组。因此,您必须将铸件修复为:
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”