Я бы предложил преобразовать ответ словаря в объект Currency
:
class Currency: NSObject {
var id: Int!
var name: String!
var symbol: String!
var websiteSlug: String!
init(id: Int, name: String, symbol: String, websiteSlug: String) {
super.init()
self.id = id
self.name = name
self.symbol = symbol
self.websiteSlug = websiteSlug
}
}
Затем в разделе переменных определите массив currencies
:
var currencies = [Currency]()
Окончательное изменениеgetDataFromApi
реализация к этому:
func getDataFromApi() {
Alamofire.request("https://api.coinmarketcap.com/v2/listings/").responseJSON{ response in
if let locationJSON = response.result.value as? [String: Any] {
let data = locationJSON["data"] as! [[String: Any]]
for dataItem in data {
let currency = Currency(id: dataItem["id"] as! Int,
name: dataItem["name"] as! String,
symbol: dataItem["symbol"] as! String,
websiteSlug: dataItem["website_slug"] as! String)
self.currencies.append(currency)
}
print(self.currencies)
}
}
}
Я всегда предлагаю смоделировать ответы на объекты, потому что это позволяет вам лучше управлять данными, которые необходимо отображать на экране, и поддерживать структуру кода.
Теперь вы можете легко отобразить данные в объекте UITableView
из массива currencies
.