Кто-нибудь может сказать, что здесь не так?
Мне прислали эту ошибку: Тип «CityWeatherInfo» не соответствует протоколу «Encodable»
struct CityWeatherInfo: Codable {
var name: String
var main: Main
var weathers: [Weather]
private enum CodingKeys: String, CodingKey {
case weathers = "weather"
case main = "main"
case name
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.name = try container.decode(String.self, forKey: .name)
let mainContainer = try container.nestedContainer(keyedBy: CodingKeys.self, forKey: .main)
let weatherContainer = try container.nestedContainer(keyedBy: CodingKeys.self, forKey: .weathers)
}
}
struct Weather: Decodable {
var main: String
var description: String
private enum WeatherKeys: String, CodingKey {
case main = "main"
case description = "description"
}
}
struct Main: Decodable {
var temp: Double
var feels_like: Double
var temp_min: Double
var temp_max: Double
private enum MainKeys: String, CodingKey {
case temp = "temp"
case feels_like = "feels_like"
case temp_min = "temp_min"
case temo_max = "temp_max"
}
}
Json это:
{"corrective": {"lon": - 0.13, "lat": 51.51}, "weather": [{"id": 804, "main": "Clouds", "description": "пасмурные облака", "icon": "04n"}], "base": "станции", "main": {"temp": 287.45, "feel_like": 286.61, "temp_min": 284.82, "temp_max": 289.15, «давление»: 1012, «влажность»: 72}, «видимость»: 10000, «ветер»: {«скорость»: 1, «градус»: 0}, «облака»: {«все»: 100} , «dt»: 1592362322, «sys»: {«type»: 1, «id»: 1414, «country»: «GB», «sunrise»: 1592365362, «sunset»: 1592425222}, «timezone»: 3600 , "id": 2643743, "name": "Лондон", "cod": 200}