как пройти через структуры? - PullRequest
0 голосов
/ 23 ноября 2018

Я извлекаю данные из API coinDesk, чтобы получить биткойны, относящиеся к другим валютам, я создал 3 структуры для сохранения этих данных, но невозможно просмотреть структуру, чтобы узнать, сколько у меня там предметов ...

это моя структура:

struct Response: Codable {
    var bpi: currencies
}

struct currencies: Codable {
    var USD: info
    var GBP: info
    var EUR: info
}

struct info: Codable {
    var code: String
    var symbol: String
    var description: String
    var rate_float: Float
}

Для сохранения данных из API я просто использую:

let jsonData = try JSONDecoder().decode(Response.self, from: data)

Сохраняет данные без ошибок, но, когда япопробуйте перебрать эти данные, чтобы заполнить tableViewCells, это не работает.

я знаю, что ...

let euro = jsonData.bpi.EUR
let dollar = jsonData.bpi.USD
let gbp = jsonData.bpi.GBP

let infos = [euro,dollar,gbp]

completion(infos)

Это отправляет данные на мой UITableViewи заселение, но что если бы у меня было 500 валют?это не будет практично вообще ... как я могу сделать это более эффективным способом?

Заранее благодарю за ответы.

1 Ответ

0 голосов
/ 23 ноября 2018

Не ставьте ключи вместо

struct Response: Codable {
  let bpi: [String:Info]
}

struct Info: Codable {
  let code: String
  let symbol: String
  let description: String
  let rate_float: Float
}

Тогда

let jsonData = try JSONDecoder().decode(Response.self, from: data)
print(jsonData.bpi["USD"])

так для всех ключей

let keys = Array(jsonData.bpi.keys)
let values = Array(jsonData.bpi.values)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...