Сначала создайте класс для моделирования ответа:
class CustomDate: NSObject {
var quarter: Int!
var day: String!
var month: String!
var db: String!
var long: String!
var unix: Int!
init(quarter: Int, day: String, month: String, db: String, long: String, unix: Int) {
super.init()
self.quarter = quarter
self.day = day
self.month = month
self.db = db
self.long = long
self.unix = unix
}
}
Затем создайте массив для хранения всех полученных дат:
var dates = [CustomDate]()
Измените реализацию apiData
на эту:
func apiData() {
Alamofire.request("https://api.lrs.org/random-date-generator?lim_quarters=40&source=api-docs", method: .get, parameters: nil, encoding: URLEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in
switch(response.result) {
case .success(_):
guard let json = response.result.value as? [String: Any] else { return }
guard let data = json["data"] as? [String: Any] else { return }
for (_, value) in data {
let dateValue = value as! [String: Any]
let date = CustomDate(quarter: dateValue["quarter"] as! Int,
day: dateValue["day"] as! String,
month: dateValue["month"] as! String,
db: dateValue["db"] as! String,
long: dateValue["long"] as! String,
unix: dateValue["unix"] as! Int)
self.dates.append(date)
}
print(self.dates)
self.tableView.reloadData()
break
case .failure(_):
print(response.result.error as Any)
break
}
}
}
Тогда единственное, что вам нужно сделать, это заполнить tableView объектами в массиве dates
:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dates.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let date = dates[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
cell.textLabel.text = date.long
return cell
}
Конечно, требуется адаптация в соответствии сдля ваших нужд.