条件绑定的初始值设定项必须有可选类型,而不是'[String:Any]'
任何人都可以告诉我如何解决这个问题吗?我只是试图从事情发言接收信号。条件绑定的初始值设定项必须有可选类型,而不是'[String:Any]'
`self.title = "Home"
print("Requesting data...")
Alamofire.request("https://api.thingspeak.com/channels/290427/feeds.json", parameters: ["results": "1", "location": "false"]) // Gets the latest info from ThingSpeak
.responseJSON { response in
print("Data downloaded: \(response.result)")
if let json = response.result.value as! [String:Any] {
print(json) //see full data
if let feeds = json["feeds"] as? [String: Any] {
for feed in feeds {
print(feed["field2"])
if let temperatureStr = feed["field2"] as? String, let dateStr = feed["created_at"] as? String {
if let temperature = Double(temperatureStr){
self.label.text = "Temperature: \(temperature)°F" //Displays last updated data entry
}
的错误是在该行
if let json = response.result.value as! [String:Any] {
错误消息称“初始值设定条件结合必须有可选的类型,而不是‘[字符串:任何]’
如果你想使用条件表达式的右侧应该是可选的。
更改此:
if let json = response.result.value as! [String:Any]
要这样:
if let json = response.result.value as? [String:Any]
这些不起作用。进一步向下给我几个构建错误。 –
[继承人存在构建错误时,我把它放在?] [1] [1]:https://i.stack.imgur.com/tKnua.png –
@ColinH答案是正确的。这些新错误与原始问题无关。代码中有一堆语法错误(例如'DateFormatter()'而不是'DateFormatter'),你应该修正它们。 –
该消息意味着,你需要有可选的类型,因此只要改变
if let json = response.result.value as! [String:Any] {
到
if let json = response.result.value as? [String:Any] {
更换'的'的'的!? '(如你在下面2行)。 - 顺便说一句,你的问题标题甚至不符合错误消息。 –