【发布时间】:2018-06-08 05:43:18
【问题描述】:
我正在尝试遍历数组并获取坐标,但它给了我一个错误,我无法访问我的数组。数据通过一个序列传递,如果我打印它表明它正在工作,因此数据可以正确传输,但无法弄清楚为什么我不能遍历数组并提取纬度和经度。
这是控制台的输出。
DeliveryDestinations(NameOrBusiness: Optional("In-N-Out Burger"), FirstLineAddress:可选(“550 Newhall Dr”),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)")
}
}
}
}
我的数组来自下面的结构
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 键将是纬度,值将是相同的坐标,长将是键,值将是坐标。尝试将其放入数组中,以便我可以使用基于此坐标的图钉填充地图。
-
为什么
theKey应该是“纬度”?这没有任何意义,你有一个数组,在任何地方都找不到“Lat”。 -
@luk2302 不是这个 Lat: Optional(37.350253606833043), Long: Optional(-121.92182779312132)) 键值对?