我坚持认为自己是愚蠢的东西。
如果我从API收到一个错误,我想显示一个错误。
在示例波纹管中,我有2个错误,所以我想在我的警报消息中显示2行。
这是我从Alamofire得到的:
let swiftyJsonVar = JSON(response.result.value!):
▿ {
"errors" : {
"tva" : [
"Tax must be numeric."
],
"data_id" : [
"Data id must exist"
]
},
"message" : "The given data was invalid."
}
- rawArray : 0 elements
▿ rawDictionary : 2 elements
▿ 0 : 2 elements
- key : "errors"
▿ value : 2 elements
▿ 0 : 2 elements
- key : "tva"
▿ value : 1 element
- 0 : Tax must be numeric.
▿ 1 : 2 elements
- key : "data_id"
▿ value : 1 element
- 0 : Data id must exist
▿ 1 : 2 elements
- key : "message"
- value : The given data was invalid.
- rawString : ""
- rawNumber : 0
- rawNull : <null>
- rawBool : false
- type : SwiftyJSON.Type.dictionary
- error : nil
这是我尝试过的:
SharedClass.sharedInstance.alertTitle(view: self, title: "Error".localized, message: "\(swiftyJsonVar["errors"].description)")
但显示此:
"{\n \"errors\" : {\n \"tva\" : [\n \"Tax must be numeric.\"\n ],\n \"data_id\" : [\n \"Data id must exist\"\n ]\n },\n \"message\" : \"The given data was invalid.\"\n}"
在这种情况下,我想说谎,应该在两行上显示:
tva: Tax must be numeric.
data_id: Data id must exist
因此,根据收到的错误数量,它将显示n行。
感谢您的帮助
错误是字典,您需要使用键访问它
for key in errors.keys {
if let val = errors[key] {
errorString = errorString + "\(key):\(val)\n"
}
}
print(errorString)