iOS:启动应用程序时不显示位置服务授权警报视图

时间:2012-05-18 20:55:16

标签: objective-c ios location cllocationmanager

我几天前问this question我的应用没有出现在设置>下重新安装后的位置服务。我发现重新安装后,我必须运行应用程序并等待“使用当前位置”授权警报视图显示,以便应用程序显示在“位置服务”列表下。反过来,我发现应用程序启动时我的应用程序不会立即显示此警报视图。

以下是可能存在问题的一些代码:

-(void)restartGps: (UIWebvView *)curWebView {
  [locationManager startMonitoringSignificantLocationChanges];
  [self performSelector:@selector(noGpsLock:) withObject:curWebView afterDelay:GPS_TIMEOUT];
}

-(void)noGpsLock: (UIWebView *)curWebView {
  if (!hasLocationFix) {
    [locationManager stopMonitoringSignificantLocationChanges];
    [self performSelector:@selector(restartGps:) withObject:curWebView afterDelay:GPS_TIMEOUT];
  }
}

当调用-locationManager:didUpdateToLocation:fromLocation:时,hasLocationFix设置为TRUE。

我最初在restartGps:中调用viewDidLoad并让这两种方法从此开始互相调用。我发现第一次调用restartGps:(来自viewDidLoad)时,警报未显示,因此应用无法获取任何位置。在noGpsLock:restartGps来电之后,警报终于出现,应用程序可以获取位置。

为什么第一次调用restartGps:时警报没有显示?

1 个答案:

答案 0 :(得分:0)

也许这个链接可以提供帮助

Adding a Requirement for Direction-Related Events