Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 检查是否已询问有关位置服务授权的信息 我通过locationManager向用户请求位置服务的WhenUse授权。请求WhenUseAuthorization 然后,稍后在我的应用程序中,我要求升级到始终使用locationManager.requestAlwaysAuthorization进行授权。然而,在iOS 11中,用户可以选择继续使用WhenInUse——让我们假设一下 假设用户再次打开应用程序,我想显示一个对话框,上面写着“如果您希望应用程序在后台工作,请更改位置服务设置” 然后,我用CLLocationManager.authorizationStatus()检查什么是授权状态,我在使用时得到.authorization。现在我不知道我以前是否已经请求过Always权限 locationManager.requestAlwaysAuthorization不会有任何效果 如果我已经问过用户,我怎么知道这是 案子_Swift_Core Location_Ios11 - Fatal编程技术网

Swift 检查是否已询问有关位置服务授权的信息 我通过locationManager向用户请求位置服务的WhenUse授权。请求WhenUseAuthorization 然后,稍后在我的应用程序中,我要求升级到始终使用locationManager.requestAlwaysAuthorization进行授权。然而,在iOS 11中,用户可以选择继续使用WhenInUse——让我们假设一下 假设用户再次打开应用程序,我想显示一个对话框,上面写着“如果您希望应用程序在后台工作,请更改位置服务设置” 然后,我用CLLocationManager.authorizationStatus()检查什么是授权状态,我在使用时得到.authorization。现在我不知道我以前是否已经请求过Always权限 locationManager.requestAlwaysAuthorization不会有任何效果 如果我已经问过用户,我怎么知道这是 案子

Swift 检查是否已询问有关位置服务授权的信息 我通过locationManager向用户请求位置服务的WhenUse授权。请求WhenUseAuthorization 然后,稍后在我的应用程序中,我要求升级到始终使用locationManager.requestAlwaysAuthorization进行授权。然而,在iOS 11中,用户可以选择继续使用WhenInUse——让我们假设一下 假设用户再次打开应用程序,我想显示一个对话框,上面写着“如果您希望应用程序在后台工作,请更改位置服务设置” 然后,我用CLLocationManager.authorizationStatus()检查什么是授权状态,我在使用时得到.authorization。现在我不知道我以前是否已经请求过Always权限 locationManager.requestAlwaysAuthorization不会有任何效果 如果我已经问过用户,我怎么知道这是 案子,swift,core-location,ios11,Swift,Core Location,Ios11,我也有过这样的情况,我想知道请求总是授权是否有任何效果,但我找不到任何解决方案(这不包括对我的应用程序进行UX重新设计),所以最终我选择了用户默认设置,如: // Define a defaults key fileprivate struct DefaultsKeys { static let hasAlreadyRequestedAlwaysAuthorization = "hasAlreadyRequestedAlwaysAuthorization" } //

我也有过这样的情况,我想知道请求总是授权是否有任何效果,但我找不到任何解决方案(这不包括对我的应用程序进行UX重新设计),所以最终我选择了用户默认设置,如:

// Define a defaults key
fileprivate struct DefaultsKeys {
    static let hasAlreadyRequestedAlwaysAuthorization = 
        "hasAlreadyRequestedAlwaysAuthorization"
}

// Then in later your code
UserDefaults.standard.register(defaults:[DefaultsKeys.hasAlreadyRequestedAlwaysAuthorization: false])
let hasAlreadyRequestedAlwaysAuthorization = UserDefaults.standard.bool(forKey: DefaultsKeys.hasAlreadyRequestedAlwaysAuthorization)
if hasAlreadyRequestedAlwaysAuthorization {
    // E.g. show a dialog saying user needs to change it manually in settings etc.
} else {
    locationManager.requestAlwaysAuthorization()
    UserDefaults.standard.set(true, forKey: DefaultsKeys.hasAlreadyRequestedAlwaysAuthorization)
}

我也有过这样的情况,我想知道请求总是授权是否有任何效果,但我找不到任何解决方案(这不包括对我的应用程序进行UX重新设计),所以最终我选择了用户默认设置,如:

// Define a defaults key
fileprivate struct DefaultsKeys {
    static let hasAlreadyRequestedAlwaysAuthorization = 
        "hasAlreadyRequestedAlwaysAuthorization"
}

// Then in later your code
UserDefaults.standard.register(defaults:[DefaultsKeys.hasAlreadyRequestedAlwaysAuthorization: false])
let hasAlreadyRequestedAlwaysAuthorization = UserDefaults.standard.bool(forKey: DefaultsKeys.hasAlreadyRequestedAlwaysAuthorization)
if hasAlreadyRequestedAlwaysAuthorization {
    // E.g. show a dialog saying user needs to change it manually in settings etc.
} else {
    locationManager.requestAlwaysAuthorization()
    UserDefaults.standard.set(true, forKey: DefaultsKeys.hasAlreadyRequestedAlwaysAuthorization)
}