Я получаю данные из json, как массив словарей, и извлекаю их, используя структуру. Я создал структуру следующим образом: -
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, выдается следующее сообщение об ошибке: - Невозможно привести значение типа '__NSCFNumber' (0x116bbe208 ) к NSArray (0x116bbef28)