如何知道MKMapView是否可以使用当前位置?

时间:2012-12-17 10:29:32

标签: objective-c location mkmapview cllocationmanager showuserlocation

我在mapView上显示用户位置:

self.mapView.showsUserLocation = YES;

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

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

那么如何知道MKMapView是否可以使用当前位置?

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

还有其他方法吗?

1 个答案:

答案 0 :(得分:3)

您不需要代表。只需使用CLLocationManager类方法authorizationStatus

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

可能的值是:

typedef enum {
   kCLAuthorizationStatusNotDetermined = 0,
   kCLAuthorizationStatusRestricted,
   kCLAuthorizationStatusDenied,
   kCLAuthorizationStatusAuthorized
} CLAuthorizationStatus;