【发布时间】:2018-08-08 22:35:40
【问题描述】:
我正在尝试制作一个使用 OpenWeatherMap API 来检查当前天气的 iOS 应用,但我收到一条错误消息,提示“Type 'MyWeather' 不符合协议 'Encodable'”。我是 Swift Programming 的新手,这可能是一个简单的错误。我会很感激任何帮助,谢谢。
我的代码如下:
struct MyWeather: Codable {
let name: String?
let location: String?
let temp: URL?
let wind: Int?
//THE NAMES OF THE JSON STUFF IN THE LINK
private enum CodingKeys: String, CodingKey {
case weather
case name
case location
case temp
case wind
//THE NAMES OF THE JSON STUFF IN THE LINK
}
}
class ViewController: UIViewController {
@IBAction func ShowWeatherInfo(_ sender: Any) {
guard let APIUrl = URL(string: "http://api.openweathermap.org/data/2.5/weather?q=Crowland&appid=APIKEY&units=Metric") else { return }
URLSession.shared.dataTask(with: APIUrl) { (data, response
, error) in
guard let data = data else { return }
do {
let decoder = JSONDecoder()
let weatherData = try decoder.decode(MyWeather.self, from: data)
【问题讨论】: