【发布时间】:2019-09-16 16:40:09
【问题描述】:
我收到错误:从“(_) throws -> ()”类型的抛出函数到非抛出函数类型“(Either) -> Void”的无效转换
在do {、weatherApi.weather(with: weatherEndpoint) { (either) in之后上线
class WeatherTableViewController: UITableViewController {
var cellViewModels = [WeatherCellViewModel]()
override func viewDidLoad() {
super.viewDidLoad()
let weatherApi = WeatherAPIClient()
let weatherEndpoint = WeatherEndpoint.fiveDayForecast(city: "Atlanta", country: "us")
do {
weatherApi.weather(with: weatherEndpoint) { (either) in
switch either {
case .value(let Weather):
print("Made it")
print(Weather)
let data = try Weather.map {
$0.weather.map {
WeatherCellViewModel(description: $0.description)
}
}
print("data")
print(data)
DispatchQueue.main.async {
self.tableView.reloadData()
}
case .error(let error):
print(error)
}
}
} catch {
print("weather endpoint error")
}
}
我在最初遇到相同的错误并查看类似问题的答案后添加了 do try catch,但它并没有解决它。 try 块是导致错误的关键部分,我正在解析我的数据以获取描述。
【问题讨论】: