CLLocationManager инициализация - PullRequest
       5

CLLocationManager инициализация

1 голос
/ 13 сентября 2011

Я работаю над веб-приложением, которое позволяет пользователям входить в систему только в определенных местах.Я использую CLLocationManager, и я инициализировал и вызвал startUpdatingLocation в AppDelegate -didFinishLaunchingWithOptions.Мой UIWebView должен тянуть местоположение при инициализации, чтобы определить, находится ли пользователь в указанных местах.Однако при запуске моего приложения значение [locationManager location] всегда равно нулю и обновляется после мой UIWebView инициализируется и отображается, поэтому уже отправляет сообщение об ошибке пользователю.мой locationManager обновить свое местоположение при инициализации?

Ответы [ 2 ]

2 голосов
/ 13 сентября 2011

Звучит так, будто вы правильно закодировали данные о местоположении. Что вы упускаете (но видели), так это то, что обновление, скорее всего, не происходит мгновенно. Вам необходимо «закрыть» остальную часть презентации вашего пользовательского интерфейса (т. Е. Веб-просмотр), чтобы информация о местоположении стала доступной. Есть много способов сделать это. Обычная тактика заключается в представлении пользователю полноэкранного «HUD» или завесы с некоторым индикатором того, что приложение инициализирует или определяет их местоположение (с индикатором активности тоже всегда приятно). пользователю) вы можете дождаться результата определения местоположения и затем запустить соответствующее обновление пользовательского интерфейса, а затем сбросить завесу.

Что-нибудь из этого имеет смысл или дает вам некоторые идеи? Я делал это много раз. Синхронизация асинхронных операций (например, обновлений местоположения) с обновлениями пользовательского интерфейса в реальном времени, которые имеют смысл, может быть сложной, но не невозможной. : -)

0 голосов
/ 13 сентября 2011

Вам нужно будет учесть начальное значение nil в пользовательском интерфейсе приложения и дождаться первого обновления местоположения.

-Расположение

Обсуждение
Значение этого свойства равно нулю, если нет данных о местоположении когда-либо был найден.

Рекомендуется проверить временную метку местоположения, которое вернулся. Если получатель в настоящее время собирает данные о местоположении, но фильтр минимального расстояния большой, возвращаемое местоположение может быть относительно старый Если это так, вы можете остановить приемник и запустить его снова форсировать обновление

Также вам следует проверить Мониторинг региона , поскольку вы хотите, чтобы пользователи могли входить в систему только в определенных местах.

...