Цикл по SwiftyJSON - PullRequest
       7

Цикл по SwiftyJSON

0 голосов
/ 14 октября 2019

Пожалуйста, помогите.

Я не могу зациклить imageUrl. он возвращает только одно изображение, а не итерацию по всем изображениям

"images" : [
      {
        "resturantId" : "919db18e-f5e2-4a6b-1df8-08d747e8c08c",
        "id" : "e722f447-a7b8-467c-9b5a-08d747ea79eb",
        "imageUrl" : "https:\/\/149356549.v2.pressablecdn.com\/wp-content\/uploads\/2019\/02\/dominos-pizza.jpg"
      },
      {
        "resturantId" : "919db18e-f5e2-4a6b-1df8-08d747e8c08c",
        "id" : "e6f42a59-f7a1-4a27-9b5b-08d747ea79eb",
        "imageUrl" : "https:\/\/www.pymnts.com\/wp-content\/uploads\/2019\/02\/dominos-earnings-q4-growth.jpg"
      },
      {
        "resturantId" : "919db18e-f5e2-4a6b-1df8-08d747e8c08c",
        "id" : "d10e91eb-8d44-477b-9b5c-08d747ea79eb",
        "imageUrl" : "http:\/\/apparelmagazine.co.nz\/restaurantandcafe\/wp-content\/uploads\/sites\/3\/2019\/06\/DOminos.jpg?w=640"
      }
    ]

func updateRestImage(json : JSON) {

    for for (index, subJson) in json {
        if let restuarantName = subJson["images"][0]["imageUrl"].string {
            print("jnfvjfvjfvubfuvbfuvb yessssss\(restuarantName)")

        }

     }

   restuarantTableView.reloadData()
}

Ответы [ 2 ]

4 голосов
/ 14 октября 2019

Измените значение изображения index

func updateRestImage(json : JSON) {
    let yourRequiredImagesArray = returnJson["images"].arrayValue.compactMap {return Image(data: try! $0.rawData())}

    if !yourRequiredImagesArray.isEmpty{
   restuarantTableView.reloadData()
    }
}

Ваша модель будет как

struct Image: Codable {
    let imageUrl
    enum CodingKeys: String, CodingKey {
        case imageUrl
    }
}

extension Image {
    init?(data: Data) {
        guard let img = try? JSONDecoder().decode(Image.self, from: data) else { return nil }
        self = img
    }
}
1 голос
/ 14 октября 2019

Вы используете [0] индекс без изменений

func updateRestImage(json : JSON) { 
     for (index,subJson):(String, JSON) in json {
           for item in subJson["images"].array {
                 if let res = item["imageUrl"].string {
                   print("yessssss\(res)")
                 } 
            } 
      } 
    restuarantTableView.reloadData() 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...