获取当前位置两次

时间:2013-10-20 13:06:38

标签: ios cllocationmanager currentlocation

我有一个iOS应用程序,如果用户通过Facebook帐户登录,它会以不同的方式启动。

所以申请流程如下:

1-我调用app delegate,它创建一个navigationController并显示它。

2-在根视图控制器中,它会检查用户是否已登录。默认情况下(例如在第一次引导期间),它会加载未登录的视图控制器,仅显示未记录用户的内容。如果用户使用Facebook帐户登录,则会向服务器发送请求并显示登录用户的内容。请求以didupdatelocation委托方法开始,从中获取当前位置。

3-有很多地方应用程序询问您是否要登录。如果用户获得正确的登录,它会创建一个新的导航控制器,如在app delegate中,并显示它。问题是,这样就不会调用方法didupdatelocation,因此它不会获取当前位置,也不会向服务器发出任何请求。

您如何建议我解决问题?

1 个答案:

答案 0 :(得分:2)

您的设计不应该依赖于didUpdateLocation来调用。系统以不可预测的间隔调用此方法。

然而,强制它调用的一种方法是停止locationManager并再次启动它。

startUpdatingLocation
stopUpdatingLocation

但是,我建议您咨询CLLocationManager Class Reference并相应地重新设计登录检查。