ios - “任何”类型的 Swift OpenWeatherMap API 值错误
问题描述
嘿,我的快速代码出错了
'Any' 类型的值没有下标
在这一行
if let weatherArray = jsonObj.value(forKey: "weather") as? NSArray {
print("Type \(weatherArray[0]["main"])")
}
我不知道如何解决它我试图搜索网络但我没有找到解决方案
其余代码
let session = URLSession.shared
let weatherURL = url!
let dataTask = session.dataTask(with: weatherURL) {
(data: Data?, response: URLResponse?, error: Error?) in
if let error = error {
print("Error:\n\(error)")
}
else {
if let data = data {
let dataString = String(data: data, encoding: String.Encoding.utf8)
print("All the weather data:\n\(dataString!)")
if let jsonObj = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? NSDictionary {
if let mainDictionary = jsonObj.value(forKey: "main") as? NSDictionary {
if let temperature = mainDictionary.value(forKey: "feels_like") {
DispatchQueue.main.async {
print("Feels like: \(temperature)°C")
}
}
}
if let weatherArray = jsonObj.value(forKey: "weather") as? NSArray {
print("Type \(weatherArray[0]["main"])")
}
解决方案
if let weatherArray = jsonObj.value(forKey: "weather") as? NSArray {
print("Type \(weatherArray[0]["main"])")
}
您必须再次将您的项目转换为 NSDictionary
if let weatherArray = jsonObj.value(forKey: "weather") as? NSArray,
let inner = weatherArray[0] as? NSDictionary {
print("Type \(inner["main"])")
}
推荐阅读
- react-navigation - React-navigation 材质顶部选项卡指示器样式
- javascript - 2D Canvas 上 createGraphics WEBGL 中的 orbitControl
- php - PDFlib 在定义的 fitbox 底部放置表格
- php - Coinmarketcap PHP API 没有返回数据
- python - Paho 发布在 Docker 上的第一个主题后停止
- wordpress - WordPress:网站看起来不像演示
- parameters - Google DataStudio:链接参数以控制下拉列表
- node.js - puppeteer 错误:找不到选择器的节点:.olp-text-box
- java - 无法运行项目灰色运行按钮 - Intellij
- android - Android Telecom Manager 隐藏/禁用添加呼叫和发送消息按钮