我想循环访问数组并获取坐标,但它给了我一个错误,我无法访问我的数组。数据通过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