Swift .map 未提供预期的数据类型
Swift .map not providing expected data type
我正在尝试将两个不同的双精度数组转换为一个 MKMapPoint 数组。我有一个 x 数组和 y 数组。两者都嵌套在另一个数组中,该数组包含其他数据类型,例如字符串和布尔值。
这是模型:
struct HostModel: Identifiable, Codable {
var id: String
var fenceX: [Double]
var fenceY: [Double]
var eventName: String
var eventDescription: String
var isEventPrivate: Bool
private enum CodingKeys: String, CodingKey {
case id
case fenceX
case fenceY
case eventName
case eventDescription
case isEventPrivate
}
}
for data in fenceData {
let x = data.fenceX.map({ [=12=].self })
let y = data.fenceY.map({ [=12=].self })
print("\(x)")
allMapPoints.append(MKMapPoint(x: x, y: y))
}
here is the data type [=14=].self shows
我认为这段代码可以工作,因为 $0.self 说它是一个 Double(见上图),但是当我尝试将它放在 mkmappoint 中时,它给我一个错误,说“无法转换类型“[Double]”的值到预期参数类型 'Double'"
打印语句显示这个数组:
[46476022.57489817, 46475952.06747695, 46475920.9612687, 46475989.39492689, 46476067.16044753, 46476150.11035207, 46476199.88028529, 46476096.19291651]
为什么 .map 没有提供它所说的数据类型?
这应该很简单。您真正需要的是压缩 x
和 y
坐标并映射 MKMapPoint
初始值设定项:
let allMapPoints = zip(data.fenceX, data.fenceY).map(MKMapPoint.init)
我正在尝试将两个不同的双精度数组转换为一个 MKMapPoint 数组。我有一个 x 数组和 y 数组。两者都嵌套在另一个数组中,该数组包含其他数据类型,例如字符串和布尔值。
这是模型:
struct HostModel: Identifiable, Codable {
var id: String
var fenceX: [Double]
var fenceY: [Double]
var eventName: String
var eventDescription: String
var isEventPrivate: Bool
private enum CodingKeys: String, CodingKey {
case id
case fenceX
case fenceY
case eventName
case eventDescription
case isEventPrivate
}
}
for data in fenceData {
let x = data.fenceX.map({ [=12=].self })
let y = data.fenceY.map({ [=12=].self })
print("\(x)")
allMapPoints.append(MKMapPoint(x: x, y: y))
}
here is the data type [=14=].self shows
我认为这段代码可以工作,因为 $0.self 说它是一个 Double(见上图),但是当我尝试将它放在 mkmappoint 中时,它给我一个错误,说“无法转换类型“[Double]”的值到预期参数类型 'Double'"
打印语句显示这个数组:
[46476022.57489817, 46475952.06747695, 46475920.9612687, 46475989.39492689, 46476067.16044753, 46476150.11035207, 46476199.88028529, 46476096.19291651]
为什么 .map 没有提供它所说的数据类型?
这应该很简单。您真正需要的是压缩 x
和 y
坐标并映射 MKMapPoint
初始值设定项:
let allMapPoints = zip(data.fenceX, data.fenceY).map(MKMapPoint.init)