#json #swift #weather
#json #swift #Погода
Вопрос:
Я пишу WeatherApp на Swift. У меня проблема с компиляцией, которая вызвала «Дополнительный аргумент в вызове». Я пишу HourlyForecast, и вы можете увидеть там мой код:
Просмотр контроллера:
HourlyForecast.downloadDailyForecastWeather { (hourlyForecastArray) in
for data in hourlyForecastArray {
print("forecast data: (data.temp, data.date)")
}
}
Часть HourlyForecast.swift:
init(weatherDictionary: Dictionary<String, AnyObject>) {
let json = JSON(weatherDictionary)
self._temp = json["temp"].double
self._date = currentDateFromUnix(unixDate: json["ts"].double!)
self._weatherIcon = json["weather"]["icon"].stringValue
}
Как я могу это исправить?
Комментарии:
1. о вызове какого метода вы говорите? С другой стороны, я рекомендую вам ознакомиться с
Codable
протоколом
Ответ №1:
Вы должны интерполировать каждую переменную отдельно
for data in hourlyForecastArray {
print("forecast data: (data.temp), (data.date)")
}
Примечания:
- Не используйте objective-c-ish имена переменных с начальным подчеркиванием.
- В словаре Swift JSON значения
Any
нетAnyObject
. - Используйте
Codable
, это намного эффективнее, чем SwiftyJSON.