在运行代码之前,请等待用户对允许位置服务的响应

时间:2013-07-07 12:41:16

标签: objective-c cllocationmanager

我有以下代码来调用位置服务(从而提高权限警报),然后我希望运行我的代码,如果他们拒绝,则允许或显示视图。

我的viewDidLoad方法中的代码如下所示,但是当它们第二次加载应用程序时,在他们做出选择之后,这两个选项都没有运行第一次。有没有办法让这段代码等待,基本上,只有在他们做出选择后才会运行?

CLLocationCoordinate2D coordinate = [self getLocation];
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized)
{
    NSLog(@"location enabled");
    [self getDataFromJson];

} else {
    NSLog(@"location disabled");
    //show them a view telling them to allow location services
}

1 个答案:

答案 0 :(得分:4)

您应该指定一个符合CLLocationManagerDelegate协议的委托,并通过实施locationManager:didChangeAuthorizationStatus:

来响应授权状态的变化