J'essaie d'obtenir des données de dictionnaire et de matrice dans ma structure personnalisée, c'est sauvegarder, mais lorsque je l'imprime sa valeur est indiquée en option (valeur). Et ce n'est pas économisant dans la cellule de la TableView avec ce problème: (
func findAllShops(){
Alamofire.request(NEARBY_STORES, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: headers).responseJSON{ (response) in
if response.result.error == nil {
do
{
guard let data = response.data else { return }
if let json = try JSON(data: data).array {
for item in json {
let storeName = item["name"].stringValue
let storeCover = item["cover"].stringValue
let storeLogo = item["logo"].stringValue
let storeSpeed = item["delievery_time"].stringValue
let storeRating = item["average_rating"].stringValue
let minimumOrder = item["min_order_amt"].stringValue
let shopList = shopModel(shopName: storeName , shopBGImage: storeCover, shoplogo: storeLogo , speed: storeSpeed, accuracy: storeRating, minimumOrder: minimumOrder)
self.shopLists.append(shopList)
}
print(self.shopLists[1])
}
}
catch let error as NSError {
// error
print("Error in the parsing")
debugPrint(response.result.error as Any)
}
}
}
}
3 Réponses :
Vous devez retravailler ou réécrire votre code comme ici: p> shopModel code> struct / classe afin que ses vars seront des non-optionnels. let storeName = item["name"] ?? "" // converts optionals to String
...
Il suffit d'assigner Approche: 2 strong> P> Lorsque toutes les valeurs sont obligatoires d'API, a suivi cette approche.
Si vous avez reçu code: strong> p>
valeur par défaut code> lorsque vous recevrez nil code> valeur de API. p>
blockQuote>
nil code> valeur de API, alors
Application s'est écrasée forte>. P>
blockQquote>
// ESSAYER
let shopList = shopModel(shopName: storeName! , shopBGImage: storeCover!, shoplogo: storeLogo! , speed: storeSpeed!, accuracy: storeRating!, minimumOrder: minimumOrder!)