Метод CLLocationManagerDelegate не вызывается
Я пишу в Swift и хочу использовать местоположение пользователя в моем приложении. я уже добавила NSLocationWhenInUseUsageDescription
а также NSLocationAlwaysUsageDescription
в Info.plist
и правильно настроил их. Я также добавил CoreLocation.framework и импортировал его в ViewController. Я также использую CLLocationManagerDelegate
в моем определении класса. Я реализовал метод didChangeAuthorizationStatus
и это работает, когда пользователь выбирает для своего местоположения приложение. Я распечатал текст на консоли, когда это произойдет, чтобы убедиться. Тем не менее, когда я вызываю метод didUpdateLocations
из этого метода сразу после печати в консоль метод не запускается и ничего нового не выводится на консоль. Я убедился, чтобы включить команду печати в didUpdateLocations
метод, чтобы убедиться в этом. Это код для одного из методов:
func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if status == .AuthorizedWhenInUse {
print("permission granted")
locationManager.startUpdatingLocation()
} else {
print(status)
}
}
Как вы можете видеть, в методе, locationManager.startUpdatingLocation()
называется, и он должен начать делать это. Вот код для этого метода:
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
print(locations)
}
Однако, когда я нажимаю кнопку "Разрешить" в моем приложении, когда оно спрашивает меня, оно не выводит на консоль ничего, кроме "предоставленного разрешения", которое было вызвано первым методом. Как это исправить? Любая помощь очень ценится!
РЕДАКТИРОВАТЬ:
Ну, на самом деле я только что решил проблему, симулируя движение в симуляторе телефона. Вам просто нужно нажать кнопку "Отладка", навести курсор на местоположение и выбрать форму движения!