So I wanted to check if I have access to the user location on iOS14 or not & I found this code but XCode(12) yells at me with this:
'authorizationStatus()' was deprecated in iOS 14.0
And here is the code:
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
}
So what should I use instead?
In iOS 14 'authorizationStatus()' is deprecated :
https://developer.apple.com/documentation/corelocation/cllocationmanager/1423523-authorizationstatus
You should use locationManagerDidChangeAuthorization instead:
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
}
}