У меня есть структура, которая соответствует протоколу Codable.Я делаю запрос URLSession и получаю ответ JSON.Я кодирую ответ в свою собственную структуру, которая выглядит примерно так.
struct Weather: Codable {
let time: Date
let location: String
let timeEvents: [TimeEvents]
}
struct TimeEvents: Codable {
let validTime: Date
let parameters: [Parameters]
}
struct Parameters: Codable {
let name: String
let unit: String
let values: [Double]
}
Я получаю один объект Погода.Однако внутри объекта Weather я хочу заполнить validTime
, , т.е. 01/01/2018 12:00
, с соответствующей name
соответствующей "температурой" и соответствующей values
, то есть 10.5 C
.
Таким образом, строки будут выглядеть примерно так:
[01/01/2018 12:00 : 10.5C]
[01/01/2018 13:00 : 11.5C]
[01/01/2018 14:00 : 11.6C]
.
.
.
[02/01/2018 00:00 : 3.1C]
[02/01/2018 01:00 : 3.1C]
В моем контроллере у меня есть что-то вроде:
var testWeatherObject : [Weather] = []
Мне нужен только один заголовок вверхняя часть отображает одно местоположение , т. е. Нью-Йорк.
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return testWeatherObject[section].timeEvents.count
}
Выше вылетает мое приложение.Я не уверен, как получить правильное количество строк.
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "WeatherDataCell", for: indexPath)
return cell
}