【发布时间】:2018-10-17 03:04:15
【问题描述】:
我从 json 中获取数据,就像一个字典数组,我使用 struct 进行提取我制作了这样的结构:-
struct Objects {
var truckName : String!
var truckCost : [String]!
}
var objectsArray = [Objects]()
我正在使用 alamofire 从儿子那里获取数据
Alamofire.request("my url", method: .post, parameters: param, encoding: URLEncoding.default, headers: header).responseJSON { (response:DataResponse<Any>) in
switch(response.result) {
case .success(_):
guard let json = response.result.value as? [String:Any] else{ return}
print("Response \(json)")
guard let response = json["response"] as? [String:Any] else{ return}
print(response)
for (key, value) in response {
print("\(key) -> \(value)")
self.objectsArray.append(Objects(truckName: key, truckCost: value as! String))
// self.objectsArray.append(Objects(truckName: key))
}
guard let msg = json["msg"] as? String else { return}
print(msg)
break
case .failure(_):
print(response.result.error as Any)
break
}
DispatchQueue.main.async {
self.collectionView.reloadData()
}
}
}
Displaying data on collectioView
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "requestCell", for: indexPath) as! RequestCollectionViewCell
cell.cellName.text = objectsArray[indexPath.item].truckName
cell.moneyLabel.text = objectsArray[indexPath.item].truckCost
cell.cell_Img.layer.cornerRadius = 40
cell.cell_Img.layer.masksToBounds = true
return cell
}
如果我只得到 truckName,那么一切正常,它正在collectionView 上打印,但是当我尝试打印 truckCost 时,它给了我这个错误:- Could not cast value of type '__NSCFNumber' (0x116bbe208 ) 到 'NSArray' (0x116bbef28)
【问题讨论】:
-
truckCost 是一个数字
-
是的,是一个数字
-
发送你有的json响应
-
@AbdelahadDarwish,先生,我在上面显示了邮递员 json 响应
-
卡车成本在哪里
标签: ios arrays swift dictionary swift4