2009-10-25 2 views
0

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

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

  • (аннулируются) locationManager: (CLLocationManager *) менеджер didUpdateToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation

ВСЕГДА выстреливает ПОСЛЕ (аннулируются) viewDidLoad работает , NO MATTER, где я его вставляю.

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

Вот мой след:

Ввод - [RootViewController initWithTabBar]

Ввод - [RootViewController viewDidLoad]

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

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

Ввод - [RootViewController initWithTabBar]

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

Ввод - [RootViewController viewDidLoad]

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

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

спасибо !!!!

ответ

1

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

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

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

+0

Хорошо, я вернулся на круги своя. Использование настройки plist для моих местоположений. Имеет больше смысла. Будет решать круглые 2 поиска мест в пределах моего определенного региона (1 миля, 2 мили и т. Д.). Больше следовать. Цель-C, yipes, какое приключение. :-) –

+0

Ну, основной ответ: вам нужно иметь (получить способ получить) ссылку из того, что реализует протокол делегата, любому объекту, нуждающемуся в информации. Это, конечно, тривиально, если они являются одним и тем же объектом и сложнее, если они не являются. Я бы предложил начать другой вопрос, чтобы спросить об архитектуре вашего приложения. –