【发布时间】:2015-09-18 17:47:19
【问题描述】:
我有以下功能。它应该从 API 网页获取当前歌曲播放信息。播放歌曲时,页面会显示:
{“艺术家”:“艺术家”,“歌曲”:“歌曲”}
当没有可用数据时(没有歌曲正在播放):
{ "error" : "未提供歌曲元数据" }
有没有办法检查“错误”键是否存在?或者我该怎么处理这个问题?
func songNowPlaying() {
let endpoint = NSURL(string: "http://api.vicradio.org/songs/current")
let jsonData = NSData(contentsOfURL: endpoint!)
do {
let parsed = try NSJSONSerialization.JSONObjectWithData(jsonData!, options: NSJSONReadingOptions.MutableContainers) as! NSMutableArray
SongNowText.text = parsed.valueForKey("song").componentsJoinedByString("")
ArtistNowText.text = parsed.valueForKey("artist").componentsJoinedByString("")
}
catch let error as NSError {
print("\(error)")
}
}
【问题讨论】:
-
我不熟悉我的 Swift,但
parsed.valueForKey("song")不会引发错误,然后在您的catch块中您可以访问error键吗? -
@Sam 这是一个聪明的主意。我得到的错误与我预期的不同。当出现“错误”情况时,它只会让我解析为 NSMutableArray?我不明白,但我会继续玩它。谢谢。