Пытаюсь построить карту, используя широту, lng для базы данных sqlite, но НЕ МОГУ определить свое местоположение до того, как карта будет нарисована.УГГГ!

StackOverflow https://stackoverflow.com/questions/1621266

  •  06-07-2019
  •  | 
  •  

Вопрос

Что я могу сделать:Возьмите базу данных sqlite с 100 точками широты и СПГ и поместите эти пины на карту.Выглядит ВЕЛИКОЛЕПНО!

Что я хотел бы сделать, так это узнать свое местоположение, ПРЕЖДЕ чем рисовать свою карту.Но кажется, что:

  • (недействительный)LocationManager: (CLLocationManager *)менеджер обновил местоположение: (CLLocation *)Новое местоположение из местоположения: (CLLocation *) Старое местоположение

ВСЕГДА срабатывает ПОСЛЕ запуска viewDidLoad (void).НЕЗАВИСИМО от того, куда я его вставлю.

Что мне нужно сделать, это создать заставку, ОСТАНОВИТЬСЯ на ней, пока я не получу местоположение, использовать эту широту и lng для поиска в моей базе данных sqlite местоположений в радиусе стольких миль от меня.

Вот мой след:

Ввод -[RootViewController initWithTabBar]

Ввод -[RootViewController viewDidLoad]

Ввод -[RootViewController LocationManager:didUpdateToLocation:fromLocation:]

И вот чего я действительно хочу:

Ввод -[RootViewController initWithTabBar]

Ввод -[RootViewController LocationManager:didUpdateToLocation:fromLocation:]

Ввод -[RootViewController viewDidLoad]

Теперь я думаю (работая с tabbarcontroller), должен ли я каким-то образом передать это обратно в делегат моего приложения?Заморозить все приложение, пока я не получу местоположение?Это мои последние мысли.

спасибо за любые советы, зацепки, фрагменты...!!!Я искал несколько дней, но безуспешно.

Спасибо!!!!

Это было полезно?

Решение

Вы определенно не хотите "замораживать" приложение, и вы определенно хотите выполнять как можно меньше работы в вашем делегате приложения. applicationDidFinishLaunching: метод, насколько это возможно.Что я мог бы порекомендовать:

  • Есть два вида:одним из них является "реальный" вид с картой, (предположительно) управляемый каким-либо контроллером вида.Другой - это просто "ожидающий" просмотр с сообщением пользователю и UIActivityIndicatorView, или что-то в этом роде.
  • Когда ваше приложение запустится, загрузите и отобразите режим ожидания в окне вашего приложения и запустите диспетчер местоположений, чтобы найти текущее местоположение пользователя.
  • Когда у вас будет достаточно информации о местоположении, загрузите реальный вид, добавьте его в окно и удалите ожидающий вид.(Может быть, с приятной анимацией перекрестного затухания или что-то в этом роде.)

Вы также можете добавить оба вида и просто перевернуть их hidden свойства в нужное время.Но смысл в том, чтобы дать пользователю возможность на что-то посмотреть, не пытаясь при этом бороться с изначально асинхронной природой расположения ядра.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top