Обычно мы запрашиваем некоторые данные JSON, а затем отображаем их в UITableView. Нужно ли нам преобразовывать JSON в объект, а затем отображать его?
Например, данные, полученные с сервера:
[
{
key1: value1,
key2: value1,
key2: value3
},
{
key1: value1,
key2: value1,
key2: value3
},
...
{
key1: value1,
key2: value1,
key2: value3
}
]
Опция 1 Отображение напрямую
Мы сохраняем эти данные в массив:
var jsonArray = [[String: Any?]]()
И в ячейке tableView:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let jsonElement = jsonArray[indexPath.row]
cell.configure(jsonElement)
}
Опция 2 : преобразовать его в структуру / объект для отображения.
Определить объект / структуру:
struct JsonObject {
var key1: String
var key2: Date
var key3: Int
}
Преобразовать:
let jsonObjects: [JsonObject] = jsonArray.map { jsonElement in
JsonObject(convert(jsonElement))
}
Дисплей
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let jsonObject = jsonObjects[indexPath.row]
cell.configure(jsonObject)
}
Так какой вариант лучше?Есть ли у конверта проблемы с производительностью, о которых мы должны заботиться?Спасибо!