我一直在关注一个正在使用API的教程,特别是openweathermap api,我遇到了一个问题,xCode给了我选项“修复它!和??”,遗憾的是它没有修复问题。
if let urlContent = data {
do {
let jsonResult = try JSONSerialization.jsonObject(with: urlContent, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String: Any]
print(jsonResult)
print(jsonResult?["name"])
if let description = ((jsonResult?["weather"] as? NSArray)?[0] as? NSDictionary)?["description"] as? String {
print(description)
}
} catch {
print("JSON Processing Fail")
}
我在if let description = ((jsonResult?["weather"] as? NSArray)?[0] as? NSDictionary)?["description"] as? String
上收到错误,作为可选类型'NSDictionary ??'的值没有解开错误。
答案 0 :(得分:1)
只需使用Swift的原生类型Array而不是NSArray。
do {
if let jsonResult = try JSONSerialization.jsonObject(with: urlContent, options: []) as? [String: Any] {
if let weatherArray = jsonResult["weather"] as? [[String:Any]],
let dic = weatherArray.first, let description = dic["description"] as? String {
print(description)
}
}
} catch {
print("JSON Processing Fail")
}