【问题标题】:Get current location twice两次获取当前位置
【发布时间】:2013-10-20 13:06:37
【问题描述】:

我有一个 iOS 应用,无论用户是否通过 Facebook 帐户登录,它的启动方式都会有所不同。

所以申请流程如下:

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

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

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

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

【问题讨论】:

    标签: ios cllocationmanager currentlocation


    【解决方案1】:

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

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

    startUpdatingLocation
    stopUpdatingLocation
    

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

    【讨论】:

    • 谢谢,我按照您的建议查看了 cllocationmanager 类引用,并通过在推送根视图控制器时停止位置更新找到了答案!
    猜你喜欢
    • 1970-01-01
    • 2011-07-15
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多