Ios 获取当前位置两次

Ios 获取当前位置两次,ios,cllocationmanager,currentlocation,Ios,Cllocationmanager,Currentlocation,我有一个iOS应用程序,如果用户是否通过Facebook帐户登录,它的启动方式会有所不同 因此,应用程序流程如下所示: 1-我调用app delegate,它创建并显示navigationController 2-在根视图控制器中,它检查用户是否登录。默认情况下(例如在第一次引导期间),它将视图控制器加载为未登录,仅显示未登录用户的内容。如果用户使用Facebook帐户登录,它会向服务器发送请求,并显示登录用户的内容。请求以didupdatelocation委托方法开始,从中获取当前位置 3-应

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

因此,应用程序流程如下所示:

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

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

3-应用程序会在许多地方询问您是否要登录。如果用户获得正确登录,它将创建一个新的导航控制器(如应用程序内委托),并显示它。问题在于,通过这种方式,它不会调用didupdatelocation方法,因此它不会获取当前位置,也不会向服务器发出任何请求


您如何建议我解决这个问题?

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

但是,强制它调用的一种方法是停止locationManager并重新启动它

startUpdatingLocation
stopUpdatingLocation

但是,我建议您参考并相应地重新设计登录检查。

谢谢,我按照您的建议查看了cllocationmanager类引用,并通过在按下根viewcontroller时停止位置更新找到了答案!