2016-12-09 82 views
0

我一直在试图弄清楚这一天,现在几天...这是我的原始代码:无法将'__NSCFNumber'(0x10e59f3c0)类型的值转换为'NSString'(0x10dba7ad8)swift 3

if let ratingDic = dictionary["rating"] as? [String: Any], 
     let ratingId = ratingDic["id"] { 
     searchResult.ratingID = ratingId as! String 
    } 

这里是我的API:

"amount" = "50.00"; 
"rating" =  { 
    "name" = "Platinum"; 
    "id" = 5 

我敢肯定我需要使用 “valueForKey”,所以这里是我更新的代码:

if let ratingDic = dictionary["rating"] as? [String: Any], 
     //let ratingId = ratingDic["id"] { 
     let ratingId = [ratingDic.valueForKey("id")!] { 
     searchResult.ratingID = ratingId as! Number 
    } 

如何曾经,现在我收到了“类型字符串值:任何没有成员‘valueForKey’

回答

1

没关系,我几乎忘了实际变量更改为‘双师型’或数字

var ratingID = 0.0 

,而不是

var ratingID = "" 

和现在的代码读取

if let ratingDic = dictionary["rating"] as? [String: Any], 
     let ratingId = ratingDic["id"] { 
     searchResult.ratingID = ratingId as! Double 
    } 
+0

为什么不',如果让ratingDic =辞典[ “评级”]作为? [String:Any],让ratingId = ratingDic [“id”]为?双{' –

相关问题