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)
      }
}