swift - IOS : Call can throw, 但没有标记为 'try' 错误未处理

标签 swift

<分区>

在谷歌搜索这个主题并阅读其他人对其他主题的回答并将他们的建议应用到我的之后,我仍然无法弄清楚。

在我的代码中:

import Foundation

protocol WeatherServiceDelegate {
     func setWeather(weather: Weather) 
}

class WeatherService {
     var delegate: WeatherServiceDelegate?

     func getWeather(city: String) {
         let path = "http://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b1b15e88fa797225412429c1c50c122a1"
         let url = URL(string: path)!
         let session = URLSession.shared
         let task = session.dataTask(with: url) { (data: Data?, response: URLResponse?, error: Error?) -> Void in
             if let data = data {
                 //print(">>>>\(data)")

                 let json = JSON(data: data)
             }
         }

         task.resume()
      }  
}

我从这一行得到了错误。红色小箭头就在 JSON 中的“J”下方...

let json = JSON(data: data)

错误是:

Call can throw, but is not marked with 'try' and the error is not handled

最佳答案

你要做的是下面的。

var json: [AnyHashable:Any]?

do {
    json = try JSON(data: data)
} catch _ {
    json = nil
}

xcode 试图说明的是,调用 JSON(data: data) 会引发错误,您应该将其放入 try-catch

关于swift - IOS : Call can throw, 但没有标记为 'try' 错误未处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45024229/

相关文章:

ios - 由于没有网络连接,更快地取消 PFQuery

ios - Swift - 执行 Segue 时的 fatal error

Array<Any> 上的 Swift 模式匹配

iOS Swift 你如何安全编码/解码时间间隔以与 NSSecureCoding 兼容?

ios - 使用 cocoapods 安装 pod 后,Pods 文件夹中没有解析框架

ios - 尝试 becomeFirstResponder 调用 UIMenuController 时出错

ios - 适用于 iOS 的 Handlebars

ios - 在 UICollectionViewCell 上设置约束的问题

ios - 将两个以上的参数传递给选择器,该选择器由字符串组成

iOS 使用 CAShapeLayer 绘制自定义形状