0

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

所以申请流程如下:

1-我调用应用程序委托,它创建一个导航控制器并显示它。

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

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

你怎么能建议我解决这个问题?

4

1 回答 1

2

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

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

startUpdatingLocation
stopUpdatingLocation

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

于 2013-10-20T13:37:50.080 回答