Определение позиции занимает некоторое время. Когда и где должен быть запущен менеджер местоположений?
Теперь я запускаю обновление местоположения за один просмотр до того, как загрузится представление результатов (для которого требуется местоположение) Если пользователь быстро нажимает, я получаю 0,0 координат.
Чтобы получить правильное время, startUpdatingLocation
следует вызывать за три вида до представления результатов. Проблема здесь в том, что мне придется передать значение через эти три контроллера вида.
Следующее, что мне нужно, это местоположение также в другом виде (а не в вышеупомянутых). Я думал, что создам собственный класс слушателя местоположения. Но когда будет создан этот класс и пройдены координаты (долгота, широта)? Протокол не помогает мне, потому что только класс, который создал мой слушатель местоположения, вернет результаты.
Я немного читаю и придумываю следующие возможные решения:
1) Использование Центра уведомлений (см. это решение )
2) Создайте свойство моего менеджера местоположения в AppDelegate
На 1) у меня была бы проблема, что представление, которому нужны результаты, не было бы создано прежде.
Как бы выглядела реализация 2)? Я создаю экземпляр диспетчера местоположения в делегате приложения и затем получаю доступ к некоторым иварам, таким как широта / долгота AppDelegate
? Если бы я использовал решение, описанное здесь , мне бы пришлось каждый раз применять CLLocationManagerDelegate
. Не лучше ли иметь один класс для этого?
Возможно, у вас есть третье решение?