【问题标题】:How to know if MKMapView is allowed to use current location?如何知道 MKMapView 是否允许使用当前位置?
【发布时间】:2012-12-04 10:37:09
【问题描述】:

我在 mapView 上显示用户位置:

self.mapView.showsUserLocation = YES;

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

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

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

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

就没有别的办法了吗?

【问题讨论】:

  • 你检查过CLLocationManager Class Reference吗?有几行文字告诉您应该使用 CLLocationManager 类的authorizationStatus 方法

标签: objective-c location mkmapview cllocationmanager showuserlocation


【解决方案1】:

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

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

可能的值是:

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

【讨论】:

  • 正是我需要的!谢谢!我是如此专注于那个代表的事情,我什至没有考虑这个解决方案!。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
  • 1970-01-01
  • 2011-04-14
  • 1970-01-01
  • 2014-03-02
  • 2020-05-02
相关资源
最近更新 更多