我想循環訪問數組並獲取座標,但它給了我一個錯誤,我無法訪問我的數組。數據通過seque傳遞,如果我打印它顯示它正在工作,所以數據正確傳輸,但無法解決爲什麼我不能遍歷數組並拉出經度和緯度。在迭代數組swift時出錯
這是控制檯中的輸出。
DeliveryDestinations(NameOrBusiness:可選( 「In-N-Out漢堡」), FirstLineAddress:可選( 「550紐荷爾博士」),SecondLineAddress: 可選(」美國 「),CityLineAddress:可選(」聖荷西 「), PostcodeLineAddress:可選(」 CA 95110" ),DistanceToDestination: 可選(9.2807823200000001),緯度:可選(37.350253606833043),長: 可選(-121.92182779312132))
import UIKit
import MapKit
import CoreLocation
class DeliveryLocationsVC: UIViewController {
@IBOutlet weak var mapView: MKMapView!
var addressArr = [DeliveryDestinations]()
override func viewDidLoad() {
super.viewDidLoad()
print(addressArr)
navigationItem.title = "Delivery Location"
// Do any additional setup after loading the view.
for (theKey, theValue) in addressArr { //<-- error can't access the elements in array
if (theKey == "Lat") {
if let coordinates:DeliveryDestinations = theValue {
print (coordinates)
}
print("Item \(theKey): \(theValue)")
}
}
}
}
我數組即將到來fr OM下面
import Foundation
import MapKit
struct DeliveryDestinations {
var NameOrBusiness: String?
var FirstLineAddress: String?
var SecondLineAddress: String?
var CityLineAddress: String?
var PostcodeLineAddress: String?
var DistanceToDestination: CLLocationDistance?
var Lat: Double?
var Long: Double?
init(NameOrBusiness: String?, FirstLineAddress: String?, SecondLineAddress: String?, CityLineAddress: String?, PostCodeLineAddress: String?, DistanceToDestination: CLLocationDistance?, Lat: Double?, Long: Double?) {
self.NameOrBusiness = NameOrBusiness
self.FirstLineAddress = FirstLineAddress
self.SecondLineAddress = SecondLineAddress
self.CityLineAddress = CityLineAddress
self.PostcodeLineAddress = PostCodeLineAddress
self.DistanceToDestination = DistanceToDestination
self.Lat = Lat
self.Long = Long
}
}
你有什麼期望'theKey'和'theValue'遏制? – luk2302
@ luk2302鍵將爲Lat並且值將是相同的座標,長度將是鍵,值將是座標。試着把它放到數組中,這樣我就可以根據這個座標用引腳填充地圖。 – QuickSilver
爲什麼'theKey'是「Lat」?這沒有任何意義,你有一個數組,沒有任何地方可以找到「Lat」。 – luk2302