CLLocationManager初始化

时间:2011-09-13 16:05:34

标签: objective-c ios cllocationmanager

我正在开发一个Web应用程序,使用户只能在特定位置登录。我正在使用CLLocationManager并在startUpdatingLocation初始化并调用AppDelegate -didFinishLaunchingWithOptions。我的UIWebView应该在初始化时拉取位置以确定用户是否在指定位置内。但是,在我的应用程序启动时,[locationManager location]始终为null,并在初始化并显示我的UIWebView后更新,因此已向用户发送错误消息。

如何让locationManager在初始化时更新其位置?

2 个答案:

答案 0 :(得分:2)

听起来你已正确编码了位置信息。你所缺少的(但已经看到)是更新肯定不会立即发生。您需要在可用的位置信息上“关闭”UI的其余部分(即您的webview)。有很多方法可以做到这一点。一个常见的策略是向用户呈现全屏“HUD”或面纱,向用户显示应用正在初始化或定位它们(​​带有活动指示器,也总是很好用。)在此背后(看不见)对于用户而言,您可以等待位置结果,然后启动相应的UI更新,然后放弃面纱。

任何有意义或给你一些想法?我做了很多次。将异步活动(如位置更新)与有意义的实时UI更新同步可能具有挑战性,但并非不可能。 : - )

答案 1 :(得分:0)

您需要在应用程序UI中考虑初始零值并等待第一次位置更新。

-location

  

讨论
  如果没有位置数据,则此属性的值为nil   曾被检索过。

     

检查位置的时间戳是个好主意   回。如果接收者当前正在收集位置数据,但是   最小距离过滤器很大,返回的位置可能是   比较老。如果是,您可以停止接收器并再次启动它   强制更新

此外,您应该查看Region Monitoring,因为您希望用户只能在特定位置登录。