labelに取得した現在地の緯度経度を定数(user)として宣言したいのですが、ユーザーによって緯度経度は違うのでどう宣言したら良いかわかりません。
swift
1import UIKit 2import MapKit 3import CoreLocation 4import Firebase 5 6class ViewController: UIViewController { 7 8 @IBOutlet weak var mapView: MKMapView! 9 let locationManager = CLLocationManager() 10 @IBOutlet weak var longitude: UILabel! 11 @IBOutlet weak var latitude: UILabel! 12 let user = [longitude.text, latitude.text] 13 //上記の一文は自分で書きました。書き方がわからないのでグチャグチャですすみません 14 15 override func viewDidLoad() { 16 super.viewDidLoad() 17 18 locationManager.delegate = self 19 20 } 21} 22extension ViewController: CLLocationManagerDelegate { 23func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { 24 switch status { 25 case .notDetermined: 26 locationManager.requestWhenInUseAuthorization() 27 case .authorizedWhenInUse: 28 locationManager.startUpdatingLocation() 29 default: 30 break 31 } 32 } 33 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 34 if let coordinate = locations.last?.coordinate { 35 // 現在地を拡大して表示する 36 let span = MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01) 37 let region = MKCoordinateRegion(center: coordinate, span: span) 38 mapView.region = region 39 40 } 41 guard let newLocation = locations.last else { 42 return 43 } 44 self.latitude.text = "".appendingFormat("%.4f", newLocation.coordinate.latitude) 45 self.longitude.text = "".appendingFormat("%.4f", newLocation.coordinate.longitude) 46 } 47}
optionalとdidSetを使えば1回のみ初期化する疑似的なletは作れるんですがいかがでしょうか。
回答1件
あなたの回答
tips
プレビュー