【问题标题】:statusCode for Alamofire4Alamofire 4 的状态码
【发布时间】:2017-06-22 12:53:18
【问题描述】:

全部。 我学习 iOS 和 alamofire。

状态码有错误。

case 200...299: -> 错误代码:无法强制将“CountableClosedRange”类型的值转换为“Int”类型

如果我将其更改为 case .Success: -> Enum case 'Success' not found in type 'Int?'

什么问题? TT

这是编码。

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let params = ["username": "ryulstory", "password": "123!"]
        var rTest = Alamofire.request(self.authLoginUrl, method: .post, parameters: params)
            .responseJSON{ response in
                print(response.request)  // original URL request
                print(response.response) // URL response
                print(response.data)     // server data
                print(response.result)   // result of response serialization

                let statusCode = response.response?.statusCode

                switch statusCode {
                case 200 ... 299 :
                    let jsonData = JSON(response.data!)
                    let token = jsonData["token"].string!
                    print(token)

                    self.keychain["token"] = token
                }
                       }

    }

【问题讨论】:

  • 如果您收到 200 作为状态码,这意味着您的 API 调用已成功完成。明确你需要做什么
  • @Suryakant 是的,对

标签: ios switch-statement alamofire


【解决方案1】:

错误具有误导性,您面临的问题是因为response 的可选链接是可选的statusCode 也是可选的,使用Nil-Coalescing Operator 包装了它的值,你们都准备好了。

let statusCode = response.response?.statusCode ?? 0

switch statusCode {
    case 200 ... 299 :
        let jsonData = JSON(response.data!)
        let token = jsonData["token"].string!
        print(token)
        self.keychain["token"] = token
}

【讨论】:

    猜你喜欢
    • 2016-01-18
    • 2017-08-04
    • 1970-01-01
    • 2021-03-15
    • 2018-01-05
    • 1970-01-01
    • 2018-07-09
    • 2017-04-18
    • 1970-01-01
    相关资源
    最近更新 更多