0

我在 mapView 上显示用户位置:

self.mapView.showsUserLocation = YES;

用户会收到 AlertView 提示,他可以在其中选择是否允许使用当前位置。如果他按下是,一切都好,我不担心。

但如果他按否,我想放大到特定区域。

那么如何知道 MKMapView 是否允许使用当前位置呢?

我找到了创建自己的 CLLocationManager 及其委托以查看它是否返回拒绝错误的解决方案。但这感觉不太对,如果我不需要它,为什么要引入一个新的 CLLocationManger。

难道没有别的办法了吗?

4

1 回答 1

3

您不需要委托人。只需使用 CLLocationManager 类方法authorizationStatus

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized) {
    // allowed
} else {
    // not allowed
}

可能的值是:

typedef enum {
   kCLAuthorizationStatusNotDetermined = 0,
   kCLAuthorizationStatusRestricted,
   kCLAuthorizationStatusDenied,
   kCLAuthorizationStatusAuthorized
} CLAuthorizationStatus;
于 2012-12-17T10:33:26.587 回答