Swift3 从swift 3迁移Alamofire swift2
以前在我的应用程序中,当我向服务器打电话时,如果出现任何错误,我会执行以下操作:Swift3 从swift 3迁移Alamofire swift2,swift3,alamofire,Swift3,Alamofire,以前在我的应用程序中,当我向服务器打电话时,如果出现任何错误,我会执行以下操作: Alamofire.request(mutableURLRequest).responseJSON{ response in if let JSON = response.result.value{ if JSON.count != 0{ let errorList = JSON["responseErrorsList"] as? NSArray
Alamofire.request(mutableURLRequest).responseJSON{
response in if let JSON = response.result.value{
if JSON.count != 0{
let errorList = JSON["responseErrorsList"] as? NSArray
for error in errorList!{
let erro: String = error as! String
switch erro{
case "PersonRequired":
if let JSON = response.result.value as? [String: Any]{
if (JSON as AnyObject).count != 0{
let errorList = JSON["responseErrorsList"] as? [[String: Any]]
从swift 2迁移到swift 4时,我遇到了问题,因为列表错误为零,但是JSON的结果如下:
["Rate": , "Level": , "Code": , "ID": 0, "Zone": , "Address": , "ErrorsListServer": <__NSSingleObjectArrayI 0x17400ba90>( InvalidCode ) , "SubZone": ]
从JSON响应中,您需要访问key ErrorsListServer,它是字符串数组而不是字典数组,因此您需要将其转换为[String]。此外,您还可以使用这样的单个if-let语句来减少代码
if let JSON = response.result.value as? [String: Any],
let errorList = JSON["ErrorsListServer"] as? [String] {
for error in errorList {
print(error)
}
}