我目前坚持将JSON Parse解析为字符串,这是我的代码
var SummName = "xxxxx"
var APIKEY = "xxxx-xxx-43d5-8647-xxxx"
let urlPath0 = "https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/"+SummName+"?api_key="+APIKEY
let url0 = NSURL(string: urlPath0)
let session0 = NSURLSession.sharedSession()
let task0 = session0.dataTaskWithURL(url0!, completionHandler: {data, response, error -> Void in
if (error != nil) {
println(error)
} else {
let summonorID_JSON = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
var SummonerID = summonorID_JSON["smirknaitia"] as NSDictionary
let SummID = SummonerID["id"]! as NSString
println(SummID)
let urlPath1 = "https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/"+SummID+"?api_key="+APIKEY
}
})
task0.resume()
通过将SummonerID [“ ID”]的值展开为字符串,总是失败
最佳答案
let SummID = SummonerID["id"]! as NSString
可以通过两种方式失败:SummonerID
词典没有键“ id”的值,因此当您尝试强制拆包时它会失败SummonerID["id"]!
不是NSString
类型(或可以转换为String
的类型,例如),因此当您尝试强制转换时它会失败。
在没有看到您输入的内容或确切的错误消息的情况下,我们无法真正分辨出它到底是哪个。
旁注:以大写字符开头的变量名不是Swift样式。最好对变量,函数和方法使用camelCase;对类,结构,枚举和枚举用例使用UpperCamelCase。