无法将类型 '__NSCFNumber' (0x1105dc3c0) 的值转换为 Swift 3 'NSString'



这是我的网址响应

{
"base": "EUR",
"date": "2017-05-16",
"rates": {
    "AUD": 1.492,
}}

这是我的代码

Alamofire.request("http://api.fixer.io/latest").responseJSON { response in
        guard let JSON = response.result.value else{
            print("Error")
            return
        }
            print("JSON: (JSON)")
        let dict = JSON as! NSDictionary
        let base : String = dict["base"] as! String
        print("Base:", base)
        let date : String = dict["date"] as! String
        print("Date:", date)
        let rateDict = dict["rates"] as! NSDictionary
        let aud : String = rateDict["AUD"] as! String
        print("AUD:", aud)
    }

在行中让 aud : 字符串 = rateDict["AUD"] as!字符串有消息错误,如上面的标题中所述。这是怎么回事。请任何人帮助我。

你可以像这样将其转换为字符串,

let aud : String = String(rateDict["AUD"])

let aud : String = NSString(format: "%0.2f", rateDict["AUD"]) as String

它是一个浮点数而不是一个字符串。 演员是浮动的

let aud = rateDict["AUD"] as! Float

编辑:避免强制强制转换,因为如果数据不是预期的,这可能会使您的应用程序崩溃。使用以下代码将防止崩溃

if let rateDict = dict["rates"] as? [String : Any] {
    if let aud = rateDict["AUD"] as? Float {
        print("(aud)")
    }
}

最新更新