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 没有提供它所说的数据类型?

这应该很简单。您真正需要的是压缩 xy 坐标并映射 MKMapPoint 初始值设定项:

let allMapPoints = zip(data.fenceX, data.fenceY).map(MKMapPoint.init)