我是一个新手,还在学习swift 3,我在这里遇到麻烦。我正在使用Alamofire和SwiftyJSON来从Open Weather API获取JSON数据。我使用tableview创建了一个应用程序,用于显示API的预测数据。 根据我的学习,我应该将JSON代码放在Model(类)和viewcontroller中,仅用于调用。但是我遇到了一个问题,因为这个JSON是带有这样的键的数组:
"list":[
{
"dt":1473134400,
"temp":{
"day":298.71,
"min":298.15,
"max":298.71,
"night":298.15,
"eve":298.71,
"morn":298.71
*列表正在循环播放。
我想从该JSON获取最小和最大数据。但不确定如何使用swiftyJSON将此视图控制器中的数据解析为init。因为我从一些视频中学到了这一点,但他们正在使用字典..
这是我的视图控制器
func downloadForecastWeatherDetail(completed: DownloadComplete){
let forecastWeatherUrl = URL(string: FORECAST_WEATHER_URL)
Alamofire.request(forecastWeatherUrl!, withMethod: .get).responseJSON {response in
switch response.result {
case .success:
if let value = response.result.value{
let json = JSON(value)
if let list = json["list"].array {
//print(list)
for (key,subJSON) in json["list"]{
let forecasting = Forecast(weatherDict: subJSON)
self.forecast.append(forecasting)
print(forecasting)
}
self.tableView.reloadData()
}
}
case .failure(let error):
print(error)
}
completed()
}
}
这是我的班级:
init(weatherDict: JSON){
if let min = weatherDict["temp"]["min"].double{
self._forecastLowTemp = min
print("\(self._forecastLowTemp)min")
}
if let max = weatherDict["temp"]["max"].double{
self._forecastHighTemp = max
print("\(self._forecastHighTemp)max")
}
}
这段代码不起作用..所以再一次我的问题是,如何使用SwiftyJSON将数据从vc中的列表传递到类中的init?因为我需要将它附加到“预测”数组类以在tableview中显示它。对不起我的长问题