前提・実現したいこと
住所から緯度経度を出力し、グローバル変数に緯度経度を保存しようと考えています。
そこで、CLGeocoder().geocodeAddressStringを利用して緯度経度を出力しましたが
グローバル変数に緯度経度を代入することができません。
下記ソースコードの
viewDidLoad()内のprint("3",eventAddressCoordinate)にて
出力がnilではなく、緯度経度が入っている状態で出力する方法をご教授いだだけると幸いです。
また、よろしければ処理の順番が
ソースコードに記載された順番ではなく、
print("2",eventAddressCoordinate)
print("3",eventAddressCoordinate)
print("1",eventAddressCoordinate)
というように、前後する理由をご教授いただけると幸いです。
該当のソースコード
swift
1import UIKit 2import MapKit 3 4var eventAddressCoordinate:CLLocationCoordinate2D? 5 6class ViewController: UIViewController { 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 geocode() 11 print("3",eventAddressCoordinate) 12 } 13 14 func geocode(){ 15 let testKey:String? = "東京都千代田区千代田1−1" 16 guard let searchKey = testKey else { print("testKey = nil"); return } 17 let geocoder = CLGeocoder() 18 geocoder.geocodeAddressString(searchKey) { (placemarks, error) in 19 guard let unwrapPlacemark = placemarks else { return } 20 guard let firstPlacemark = unwrapPlacemark.first else { return } 21 guard let location = firstPlacemark.location else { return } 22 eventAddressCoordinate = location.coordinate 23 print("1",eventAddressCoordinate) 24 } 25 print("2",eventAddressCoordinate) 26 } 27 28} 29 30
デバックエリアの内容
2 nil 3 nil 1 Optional(__C.CLLocationCoordinate2D(latitude: 35.6837221, longitude: 139.7535985))
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。