Objective c iOS:location services授权警报视图在应用程序启动时不显示

Objective c iOS:location services授权警报视图在应用程序启动时不显示,objective-c,ios,location,cllocationmanager,Objective C,Ios,Location,Cllocationmanager,几天前我问过我的应用在重新安装后没有出现在“设置”>“位置服务”下。我发现重新安装后,我必须运行应用程序,等待“使用当前位置”授权警报视图显示,应用程序才会显示在位置服务列表下。反过来,我发现我的应用程序在启动时不会立即显示此警报视图 下面是一些可能是问题所在的代码: -(void)restartGps: (UIWebvView *)curWebView { [locationManager startMonitoringSignificantLocationChanges]; [sel

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

下面是一些可能是问题所在的代码:

-(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

我最初在
viewdiload
中调用
restartGps:
,然后让这两个方法从那时起互相调用。我发现第一次调用
restartGps:
(从
viewDidLoad
)时,警报没有出现,因此应用程序无法获取任何位置。在一次
noGpsLock:
和一次
restartGps
呼叫后,警报终于出现,应用程序能够获取位置


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

您解决了吗?我也有同样的问题…@dvkch我不知道这是否是最好的解决方案,但我在启动我的应用程序时延迟了
[locationManager startMonitoringSignificantLocationChanges]
,这似乎解决了问题。谢谢你,我也成功了!