类型 'Location' 不符合协议 'Decodable' -- MKAnnotation UIKit
Type 'Location' does not conform to protocol 'Decodable' -- MKAnnotation UIKit
我是 Swift 编程的法国新手,我想用 UIKit 显示来自 JSON 文件的注释(不是 swiftUI,因为我想将我的注释聚类)。我创建了一个可解码的 class 和一个 MKAnnotation,但我遇到了一个问题:“类型 'Location' 不符合协议 'Decodable'”
非常感谢您的回答!
这是我的位置class
class Location: NSObject, Decodable, Identifiable, MKAnnotation {
var id: Int
var name: String
var latitude: Double
var longitude : Double
var coordinate: CLLocationCoordinate2D
init(id : Int, name : String, latitude : Double, longitude : Double){
self.id = id
self.name = name
self.longitude = longitude
self.latitude = latitude
}
}
还有我的 JsonFile
{
"locations": [
{
"id": 0,
"name": "New York City",
"latitude": 40.71,
"longitude": -74
},
{
"id": 1,
"name": "Barcelona",
"latitude": 41.38,
"longitude": 2.17
}
将 coordinate
计算为 属性
var coordinate: CLLocationCoordinate2D{
CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
}
或
var coordinate: CLLocationCoordinate2D{
get{
CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
}
set{
latitude = newValue.latitude
longitude = newValue.longitude
}
}
我是 Swift 编程的法国新手,我想用 UIKit 显示来自 JSON 文件的注释(不是 swiftUI,因为我想将我的注释聚类)。我创建了一个可解码的 class 和一个 MKAnnotation,但我遇到了一个问题:“类型 'Location' 不符合协议 'Decodable'”
非常感谢您的回答!
这是我的位置class
class Location: NSObject, Decodable, Identifiable, MKAnnotation {
var id: Int
var name: String
var latitude: Double
var longitude : Double
var coordinate: CLLocationCoordinate2D
init(id : Int, name : String, latitude : Double, longitude : Double){
self.id = id
self.name = name
self.longitude = longitude
self.latitude = latitude
}
}
还有我的 JsonFile
{
"locations": [
{
"id": 0,
"name": "New York City",
"latitude": 40.71,
"longitude": -74
},
{
"id": 1,
"name": "Barcelona",
"latitude": 41.38,
"longitude": 2.17
}
将 coordinate
计算为 属性
var coordinate: CLLocationCoordinate2D{
CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
}
或
var coordinate: CLLocationCoordinate2D{
get{
CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
}
set{
latitude = newValue.latitude
longitude = newValue.longitude
}
}