Swift 正在检查iOS 14上的用户位置权限状态
所以我想检查我是否有权访问iOS14上的用户位置&我找到了这段代码,但XCode(12)对我大喊大叫:Swift 正在检查iOS 14上的用户位置权限状态,swift,location,ios14,Swift,Location,Ios14,所以我想检查我是否有权访问iOS14上的用户位置&我找到了这段代码,但XCode(12)对我大喊大叫: 'authorizationStatus()' was deprecated in iOS 14.0 代码如下: func hasLocationPermission() -> Bool { var hasPermission = false if CLLocationManager.locationServicesEnabled() {
'authorizationStatus()' was deprecated in iOS 14.0
代码如下:
func hasLocationPermission() -> Bool {
var hasPermission = false
if CLLocationManager.locationServicesEnabled() {
switch CLLocationManager.authorizationStatus() { // <= 'authorizationStatus()' was deprecated in iOS 14.0
case .notDetermined, .restricted, .denied:
hasPermission = false
case .authorizedAlways, .authorizedWhenInUse:
hasPermission = true
@unknown default:
hasPermission = false
}
} else {
hasPermission = false
}
return hasPermission
}
func hasLocationPermission()->Bool{
var hasPermission=false
如果CLLocationManager.locationServicesEnabled(){
iOS 14中的开关CLLocationManager.authorizationStatus(){/不推荐使用“authorizationStatus()”:
您应该改用LocationManagerDicChangeAuthorization:
func locationManagerDidChangeAuthorization(_ manager: CLLocationManager) {
switch manager.authorizationStatus {
case .authorizedAlways , .authorizedWhenInUse:
break
case .notDetermined , .denied , .restricted:
break
default:
break
}
switch manager.accuracyAuthorization {
case .fullAccuracy:
break
case .reducedAccuracy:
break
default:
break
}
}
iOS 14检查用户是否允许权限
使用
iOS 14及更早版本
func locationAuthorizationStatus() -> CLAuthorizationStatus {
let locationManager = CLLocationManager()
var locationAuthorizationStatus : CLAuthorizationStatus
if #available(iOS 14.0, *) {
locationAuthorizationStatus = locationManager.authorizationStatus
} else {
// Fallback on earlier versions
locationAuthorizationStatus = CLLocationManager.authorizationStatus()
}
return locationAuthorizationStatus
}
我无法理解苹果文档中的任何内容:|您应该实现委托方法locationmanagerdchangedauthorization
,并检查该方法中authorizationStatus
的值locationmanagerdchangedauthorization(|:)仅适用于iOS14。
self.LocationManager.checkLocationPermission()
func locationAuthorizationStatus() -> CLAuthorizationStatus {
let locationManager = CLLocationManager()
var locationAuthorizationStatus : CLAuthorizationStatus
if #available(iOS 14.0, *) {
locationAuthorizationStatus = locationManager.authorizationStatus
} else {
// Fallback on earlier versions
locationAuthorizationStatus = CLLocationManager.authorizationStatus()
}
return locationAuthorizationStatus
}