配列をループして座標を取得しようとしていますが、エラーが発生し、配列にアクセスできません。データはSequeを通過し、印刷した場合、データが正しく転送されるように表示されますが、配列を繰り返し処理できず、緯度と経度を引き出すことができないのはなぜですか。配列の繰り返しでエラーが発生する
これはコンソールの出力です。
DeliveryDestinations(NameOrBusiness:オプション( "インN-アウトバーガー")、 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)")
}
}
}
}
マイアレイが来ている
for object in addressArr {
...
// get coordinates from object
let lat = object.Lat
let long = object.Long
}
それともあなたが同様にあなたのテーブルの行のインデックスが必要な場合: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になり、値はlongと同じ座標になります。キーは値になります。これを配列に配置して、この座標に基づいてピンをマップに挿入できるようにしてください。 – QuickSilver
'theKey'を" Lat "にするのはなぜですか?それは意味をなさない、あなたは配列を持っている、どこにでも見つかる "緯度"がない。 – luk2302