Alamofire4的statusCode

时间:2017-06-22 12:53:19

标签: ios switch-statement alamofire

所有。 我研究iOS和alamofire。

状态代码存在错误。

case 200...299: ->错误代码:无法转换类型的值' CountableClosedRange'输入' Int'在胁迫中

如果我把它改成大小写。成功: - > Enum案例'成功'类型' 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
                }
                       }

    }

1 个答案:

答案 0 :(得分: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
}