Метод 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)
}

Однако, когда я нажимаю кнопку "Разрешить" в моем приложении, когда оно спрашивает меня, оно не выводит на консоль ничего, кроме "предоставленного разрешения", которое было вызвано первым методом. Как это исправить? Любая помощь очень ценится!

РЕДАКТИРОВАТЬ:

Ну, на самом деле я только что решил проблему, симулируя движение в симуляторе телефона. Вам просто нужно нажать кнопку "Отладка", навести курсор на местоположение и выбрать форму движения!

0 ответов

Другие вопросы по тегам