Я думаю, что ваше определение Class
в порядке, перечисление CodingKeys
не нужно, но можно оставить его таким.
Для простоты вы можете объявить переменную внутри ViewController
извведите [Class]
, этот массив будет содержать данные, полученные из вашего URL. Когда вы декодируете эти данные, вы сохраняете их в эту переменную, например, вы можете сделать что-то вроде: self?.myData = try! decoder.decode([Class].self, from: data)
.
Переменная myData объявляется так:
fileprivate var myData = [Class]() {
didSet {
// All UI related stuff must run on the main thread
DispatchQueue.main.async {
self?.table.reloadData()
}
}
}
Использование didSet
Наблюдатель свойств - это простой способ перезагрузить данные после обновления переменной.
Для источника данных таблицы вы должны реализовать несколько методов. Сначала тот, который просто возвращает число строк в разделе с одной строкой кода:
return myData.count
И метод, который реализует cellForRowAt
, который отключает ячейку и устанавливает информацию о полях соответствующих ячеек. ,Данные для отображения находятся в массиве myData
, вы можете использовать indexPath
для индексации массива, например:
let dataRow = myData[indexPath.row]
Вы можете посмотреть на очень простой проект, который реализует все это в Github . Единый вид проекта выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/Mfuw5.png)
Надеюсь, это поможет.