Swift CLLocationManager已启用,但从未选中

Swift CLLocationManager已启用,但从未选中,swift,authorization,cllocationmanager,appdelegate,cllocation,Swift,Authorization,Cllocationmanager,Appdelegate,Cllocation,我试图在AppDelegate中确定用户是否将应用程序的位置权限设置为“从不”。如果找不到位置,我的应用程序总是会崩溃 我在AppDelegate中的代码是: func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { //location var manager = 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()
    }
}

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

关于CoreLocation和请求授权的最佳文章如下:

有两点:

  • 仅当当前状态为.NotDetected时请求授权
  • 如果当前状态为.Denied,则您可以发布警报 用户可以进入设置并打开位置服务,但调用任何一个请求方法都不会起任何作用
  • 记住在plist中输入NSLocationUsageDescription!(一) 忘了这件事吧。)

  • 错误是什么?这只是nilIs这个Xcode 6或7的崩溃?一旦我修复了明显的编译错误,您发布的代码就不会崩溃。这也没有什么意义。如果authorizationStatus被限制,则用户无法授予访问权限,如果状态被拒绝,则用户已被拒绝状态。无论在哪种情况下请求授权都是无用的。@Anton,您是否在项目的rootviewcontroller中使用了CLLocationManager。