【发布时间】:2016-01-24 19:38:38
【问题描述】:
我正在尝试从 api (JSON) 获取项目并将其解析为预定义的 swift 数组。我已经搜索了好几个小时,但由于我缺乏技能,我找不到任何适合我的情况。
我的预定义数组如下所示:
init?(participants: String, photoguest: UIImage?, photohome: UIImage?, time: String, stadium: String, channel: String)
JSON结构是这样的(entire json file):
{"gameId":"255","gameWeek":"17","gameDate":"2016-01-03","awayTeam":"SEA","homeTeam":"ARI","gameTimeET":"4:25 PM","tvStation":"FOX","winner":"SEA"}
我当前的代码如下所示(游戏是我将数组中的变量与表格单元格项目连接起来的类):
var gameplan = [Games]()
func loadNFLgames(){
let apiURL = NSURL(string: "http://www.fantasyfootballnerd.com/service/schedule/json/test/")
let data: AnyObject? = NSData(contentsOfURL: apiURL!)
let homeTeam = (data as! NSDictionary)["homeTeam"] as! String
let awayTeam = (data as! NSDictionary)["awayTeam"] as! String
let gameDate = (data as! NSDictionary)["gameDate"] as! String
let gameTimeET = (data as! NSDictionary)["gameTimeET"] as! String
let tvStation = (data as! NSDictionary)["tvStation"] as! String
/*
for schleife mit API daten:
for gameWeek = currentWeek{ //every game where gameWeek matches currentWeek
*/
// create variables from api calls
let api_guest = awayTeam
let api_home = homeTeam
let api_tvhost = tvStation
let api_time = gameDate + ", " + gameTimeET + " ET" // convert gameDate to day e.g. SUN
let api_stadion = "N/A"
// prepare data for array
let gamedata = Games(participants: api_guest+" @ "+api_home, photoguest: UIImage(named: api_guest), photohome: UIImage(named: api_home), time: api_time, stadium: api_stadion, channel: api_tvhost)!
// add data to array
gameplan.append(gamedata)
}
我收到以下错误:
无法将“_NSInlineData”(0x1a0cfd428) 类型的值转换为 'NSDictionary' (0x1a0cf3380)。
编辑:这里抛出错误:
let homeTeam = (data as! NSDictionary)["homeTeam"] as! String
我们非常感谢您的帮助。 提前致谢!
【问题讨论】:
-
嗯..有什么问题
-
抱歉更新了帖子
-
哪一行抛出了错误,或者我们猜想?
-
NSDictionary 错误正在抛出:
let homeTeam = (data as! NSDictionary)["homeTeam"] as! String -
你需要解析 schedule 数组,然后循环每个 nsdictionary