1

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

我的代码如下,在我的 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
}
4

1 回答 1

4

您应该分配一个符合CLLocationManagerDelegate协议的委托,并通过实现来响应授权状态的变化locationManager:didChangeAuthorizationStatus:

于 2013-07-07T12:59:13.617 回答