-1
votes

Comment déballé facultatif non déroulant --- Précision: Facultatif ("2.5") ---

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)
            }
        }
    }
}


0 commentaires

3 Réponses :


0
votes

Vous devez retravailler shopModel code> struct / classe afin que ses vars seront des non-optionnels.

ou réécrire votre code comme ici: p>

let storeName = item["name"] ?? "" // converts optionals to String
...


0 commentaires

0
votes

approche: 1

Il suffit d'assigner valeur par défaut lorsque vous recevrez nil valeur de API.

code: xxx

Approche: 2

Lorsque toutes les valeurs sont obligatoires d'API, a suivi cette approche. Si vous avez reçu nil valeur de API, alors Application s'est écrasée .

code: xxx


0 commentaires

0
votes

// ESSAYER

let shopList = shopModel(shopName: storeName! , shopBGImage: storeCover!, shoplogo: storeLogo! , speed: storeSpeed!, accuracy: storeRating!, minimumOrder: minimumOrder!)


0 commentaires