Показать текущие местоположения в MKMapView в Swift - PullRequest
0 голосов
/ 07 апреля 2019

Я довольно новичок в Swift, и следующий код не запрашивает у меня привилегии местоположения и не показывает мое текущее местоположение в MKMapView.Я уже добавил NSLocationAlwaysUsageDescription в свой info.plist, но мой симулятор все еще не запрашивает у меня разрешения на местоположение или показывает мое текущее местоположение.

import UIKit
import MapKit
import CoreLocation

class MapViewController: UIViewController, CLLocationManagerDelegate {
  @IBOutlet var mapView: MKMapView!
  var locationManager: CLLocationManager!

  override func viewDidLoad() {
        super.viewDidLoad()

    if (CLLocationManager.locationServicesEnabled())
    {
      locationManager = CLLocationManager()
      locationManager.delegate = self
      locationManager.desiredAccuracy = kCLLocationAccuracyBest
      locationManager.requestAlwaysAuthorization()
      locationManager.startUpdatingLocation()
    }
  }

  func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    if let location = locations.last
    {
      let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
      let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))
      self.mapView.setRegion(region, animated: true)
    }
  }

}

Заранее спасибо.

1 Ответ

0 голосов
/ 07 апреля 2019

Вы запрашиваете авторизацию, когда службы определения местоположения включены.Блок if никогда не будет выполнен, поскольку службы определения местоположения по умолчанию отключены.Скорее проверьте состояние авторизации для authorizationStatus == kCLAuthorizationStatusNotDetermined и затем запросите авторизацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...