如何修复通话中的额外参数?

How I can fix Extra Argument In call?

我正在 Swift 上编写 WeatherApp。我在编译时遇到问题,称为“调用中的额外参数”。 我正在写 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
}

我该如何解决?

您必须分别对每个变量进行插值

for data in hourlyForecastArray {
    print("forecast data: \(data.temp), \(data.date)") 
}

备注:

  • 不要使用带有前导下划线的 objective-c-ish 变量名。
  • 在 Swift JSON 字典中的值是 Any 而不是 AnyObject
  • 使用Codable,比SwiftyJSON.
  • 效率高很多