У меня возникла странная проблема с UITableViewController. Я запрашиваю authroization службы определения местоположения внутри метода viewDidLoad, и я мог видеть, что появляется предупреждение. Тем не менее, это оповещение остается на пару секунд, а затем исчезает. Почему это происходит?Как сохранить окно с запросом на оповещение о местоположении.
override func viewDidLoad() {
let locationManager = CLLocationManager()
locationManager.requestAlwaysAuthorization()
}
Я попробовал этот код в UIViewController, который загружает этот UITableViewController и столкнулся с другой проблемой. На этот раз отображается только предупреждение с уведомлением службы уведомлений только для уведомлений, а запрос службы поиска полностью игнорируется. Я предполагаю, что это потому, что запрос службы уведомлений не от меня, а от ios, и мой запрос службы местоположения был перезаписан запросом уведомления ios. Это мое предположение правильно или есть какое-либо объяснение для такого поведения?
Хорошая точка! Перед запросом следует проверить статус авторизации. Но где этот код принадлежит? – user30646
Лично мне нравится проверять статус непосредственно перед тем, как я действительно начну использовать службы определения местоположения. Но если вы собираетесь это сделать, когда сначала появится представление контроллера представления, вы, очевидно, можете использовать 'viewDidAppear'. – matt
Я просил разрешения перед использованием службы. Тогда я подумал, может быть, я должен попросить разрешения для всех служб, которые мне нужны, и избавиться от них. – user30646