如何知道是否允许 MKMapView 使用当前位置



我在地图上显示用户位置视图:

self.mapView.showsUserLocation = YES;

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

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

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

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

难道没有别的办法吗?

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

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

可能的值为:

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

相关内容

  • 没有找到相关文章

最新更新