我正在嘗試將兩個不同的 double 陣列轉換為 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({ $0.self })
let y = data.fenceY.map({ $0.self })
print("\(x)")
allMapPoints.append(MKMapPoint(x: x, y: y))
}
這是 $0.self 顯示的資料型別
我認為這段代碼可以作業,因為 $0.self 說它是一個 Double(見上圖),但是當我嘗試將它放在 mkmappoint 中時,它給我一個錯誤,說“無法轉換型別的值 '[Double]'到預期的引數型別“雙”
print 陳述句顯示了這個陣列:
[46476022.57489817, 46475952.06747695, 46475920.9612687, 46475989.39492689, 46476067.16044753, 46476150.11035207, 46476199.88028529, 46476096.19291651]
為什么 .map 沒有提供它所說的資料型別?
uj5u.com熱心網友回復:
那應該很簡單。您實際需要的是壓縮您的x和y坐標并映射MKMapPoint初始化程式:
let allMapPoints = zip(data.fenceX, data.fenceY).map(MKMapPoint.init)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/418759.html
標籤:
