Я пытаюсь реализовать базовое представление карты и добавить текущее местоположение пользователя к карте в качестве аннотации. Я добавил ключ request.heninuse к моему info.plist и импортировал coreLocation.Обработка разрешений на доступ мгновенно в swift
В сделал метод загрузки с моей точки зрения контроллера, у меня есть следующие:
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
}
я получаю оперативную повторно. разрешение на получение местоположения. Поскольку это происходит, я получаю сообщение о том, что не получаю местоположение, очевидно, потому что это выполняется до того, как пользователь получит возможность нажать «ОК». Если я вернусь к приложению и вернусь, я смогу найти место и добавить его на карту. Тем не менее, я хочу, чтобы пользователь впервые нажал OK, чтобы иметь возможность захватить текущее местоположение и добавить его на карту там и тогда. Как я могу это достичь? У меня есть следующий метод добавления булавки:
func addPin(location2D: CLLocationCoordinate2D){
self.mapView.delegate = self
var newPoint = MKPointAnnotation()
newPoint.coordinate = location2D
self.mapView.addAnnotation(newPoint)
}
Спасибо за ответ. Строка locManger.delegate = self дает мне ошибку «ожидаемая декларация» – user2363025
@ user2363025 вы можете уточнить? Нажмите на ошибку, и она должна рассказать вам больше –
Вот и все ошибки. Никакая дополнительная информация не появляется при наведении указателя мыши. Я видел здесь http://stackoverflow.com/questions/24121761/how-to-use-corelocation-with-swift, что, возможно, я должен определить locManager в appdelegate? Я также получаю ошибки в каждом случае оператора switch, говоря, что каждый из методов не может быть вызван без аргументов, был ли я определен locManager в appdelegate или в контроллере просмотра – user2363025