CLLocationManager已启用但已检查从不

时间:2015-07-17 18:51:24

标签: swift authorization cllocationmanager appdelegate cllocation

我正在尝试在AppDelegate中确定用户是否将应用程序的位置权限设置为“从不”。如果没有获得位置,我的应用程序总是会崩溃。

AppDelegate中的代码是:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    //location
    var manager = CLLocationManager()       
    if CLLocationManager.authorizationStatus() == .Restricted
            || .authorizationStatus() == .Denied {
        manager.requestWhenInUseAuthorization()
        manager.requestAlwaysAuthorization()
    }
}

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

有关CoreLocation和请求授权的最佳文章位于:http://nshipster.com/core-location-in-ios-8/

有几点:

  1. 如果当前状态为.NotDetermined
  2. ,则仅请求授权
  3. 如果当前状态是.Denied,那么您可以发出警报询问 用户进入设置并打开位置服务,但调用其中一种请求方法将无效。
  4. 请记住在plist中放入NSLocationUsageDescription! (一世 经常忘记这一点。)