gpt4 book ai didi

ios - CLLocationManager 的 AuthorizationStatus 在 iOS 14 上已弃用

转载 作者:行者123 更新时间:2023-12-03 15:10:18 30 4
gpt4 key购买 nike

我使用此代码检查我是否有权访问用户位置

if CLLocationManager.locationServicesEnabled() {
switch CLLocationManager.authorizationStatus() {
case .restricted, .denied:
hasPermission = false
default:
hasPermission = true
}
} else {
print("Location services are not enabled")
}
}
Xcode(12) 用这个警告对我大喊大叫:
'authorizationStatus()' was deprecated in iOS 14.0
那么替代品是什么呢?

最佳答案

它现在是 CLLocationManager 的属性(property), authorizationStatus .所以,创建一个 CLLocationManager实例:

let manager = CLLocationManager()
然后您可以从那里访问该属性:
switch manager.authorizationStatus {
case .restricted, .denied:
...
default:
...
}
iOS 14 中有一些与位置相关的更改。请参阅 WWDC 2020 What's new in location .

不用说,如果您还需要支持 14 之前的 iOS 版本,那么只需添加 #available检查,例如:
let authorizationStatus: CLAuthorizationStatus

if #available(iOS 14, *) {
authorizationStatus = manager.authorizationStatus
} else {
authorizationStatus = CLLocationManager.authorizationStatus()
}

switch authorizationStatus {
case .restricted, .denied:
...
default:
...
}

关于ios - CLLocationManager 的 AuthorizationStatus 在 iOS 14 上已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64073811/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com