我正在获取JSON字典数据,并将它们附加到[[String:Anyobject]]变量中,但是当我尝试放入获取的“图像”数据时。作为变量中的[String]数组,当我尝试将数组元素打印为[String]时它会显示nil
var productsDetails = [String:AnyObject]
:on
在表格视图单元格
guard let response = data else {return}
if response["success"].boolValue == true , error == nil{
//cell.titleLabel.text = response["data"]["product"]["title"] as? String
self.productsDetails.append(response["data"]["product"].dictionary! as [String : AnyObject])
}
self.cartTableView.reloadData()
答案 0 :(得分:1)
首先,Swift 3+中的JSON字典永远不会[String:AnyObject]
,而是[String:Any]
错误已清除。 data["image"]
包含一个(Swifty)JSON对象,即上述的_SwiftValue
类型。
要获取product
的字典,请使用dictionaryObject
返回[String:Any]?
self.productsDetails.append(response["data"]["product"].dictionaryObject!)
请不要使用像(data["image"]! as? [String])!
这样的可怕语法
强制将可选组件降级为可选组件,然后强制将其解包。
如果它是可选的,则有条件地向下转换(data["image"] as? [String]
)或强制向下转换一次(data["image"] as! [String]
)
注意:我们鼓励您放弃SwiftyJSON而使用Codable
。它是内置的,效率更高。