Как я могу исправить дополнительный аргумент в вызове?

#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.