Попытка построить карту, используя lat, lng для sqlite DB, но не могу получить мое местоположение до того, как карта нарисована. UGGG! - PullRequest
0 голосов
/ 25 октября 2009

Что я могу сделать: Возьмите sqlite DB из 100 лат и lng точек и поместите эти булавки на карту. Выглядит здорово!

То, что я хотел бы сделать, это получить мое местоположение, ДО того, как я нарисую карту. Но похоже, что:

  • (void) locationManager: (CLLocationManager *) manager didUpdateToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation

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

Что мне нужно сделать, так это иметь заставку, останавливаться там до тех пор, пока я не получу местоположение, используйте эти значения lat и lng для поиска в моей базе данных sqlite в пределах многих миль от меня.

Вот мой след:

Ввод - [RootViewController initWithTabBar]

Ввод - [RootViewController viewDidLoad]

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

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

Ввод - [RootViewController initWithTabBar]

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

Ввод - [RootViewController viewDidLoad]

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

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

спасибо !!!!

1 Ответ

1 голос
/ 25 октября 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...