SWIFT. Почему при попытке доступа к bevArray из другого файла swift не отображаются заполненные значения? - PullRequest
0 голосов
/ 11 апреля 2020
import Foundation

struct WebsiteDescription: Decodable {
    let nhits: Int?
    let parameters: Params
    let records: [Record]
}

struct Params: Decodable {
    let dataset: String?
    let timezone: String?
    let UTC: String?
    let rows: Int?
    let format: String?
}

struct Record: Decodable {
    let datasetid: String?
    let recordid: String?
    let fields: Field
    let record_timestamp: String?
}

struct Field: Decodable {
    let category: String?
    let units_per_100ml: Double?
    let style: String?
    let units_o_alcohol: Double?
    let quantity_units: String?
    let package: String?
    let brand: String?
    let product: String?
    let volume: Double?
    let abv: Double?
    let units: Double?
    let quantity: Double?
}

class JsonParser {

    var bevArray : [Beverage.BeverageStruct] = []

    var selectedBrandArr = ""
    var jsonUrlString = "https://public.opendatasoft.com/api/records/1.0/search/?dataset=units-of-alcohol&refine.brand="


func queryJson(brand: String){

let url = (URL(string: jsonUrlString + brand) ?? URL(string: ""))

let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in


        guard let dataResponse = data,
              error == nil else {
              print(error?.localizedDescription ?? "Response Error")
              return }

        do{
            //ALL Results
            /* let jsonResponse = try JSONSerialization.jsonObject(with:
                                   dataResponse, options: []) as? [String: Any]
            print(jsonResponse)
            */

            let decoder = try JSONDecoder().decode(WebsiteDescription.self, from: dataResponse)

            for jsonData in decoder.records {

                var bevStructs = Beverage.BeverageStruct(product: jsonData.fields.product, packaging: jsonData.fields.package, brand: jsonData.fields.brand, quantity: jsonData.fields.quantity)

                self.bevArray.append(bevStructs)

            }


         } catch let parsingError {
            print("Error", parsingError)
       }


    }
    task.resume()
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...