Я пытаюсь реализовать базовое представление карты и добавить текущее местоположение пользователя к карте в качестве аннотации. Я добавил ключ request.heninuse к моему info.plist и импортировал coreLocation.
На мой взгляд, контроллер действительно загрузил метод, у меня есть следующее:
locManager.requestWhenInUseAuthorization()
var currentLocation : CLLocation
if(CLLocationManager.authorizationStatus() == CLAuthorizationStatus.AuthorizedWhenInUse){
currentLocation = locManager.location
println("currentLocation is \(currentLocation)")
}
else{
println("not getting location")
// a default pin
}
Я получаю подсказку re. разрешение на получение местоположения. Поскольку это происходит, я получаю сообщение о том, что не получаю местоположение, очевидно, потому что это выполняется до того, как пользователь получит возможность нажать "ОК". Если я вернусь к приложению и вернусь, я смогу найти место и добавить его на карту. Тем не менее, я хочу, чтобы пользователь впервые нажал OK, чтобы иметь возможность захватить текущее местоположение и добавить его на карту там и тогда. Как я могу это достичь? У меня есть следующий способ добавления булавки:
func addPin(location2D: CLLocationCoordinate2D){
self.mapView.delegate = self
var newPoint = MKPointAnnotation()
newPoint.coordinate = location2D
self.mapView.addAnnotation(newPoint)
}