Mic*_*hel 6 core-location ios swiftui
在使用SwiftUI
和的 iOS 应用程序中CoreLocation
。我需要密切关注用户授予的位置访问权限的状态。
查看 的文档CLLocationManagerDelegate
,看起来我应该使用locationManagerDidChangeAuthorization方法。
问题是这个方法永远不会被调用(据我所知)。此外,另一个方法locationManager:didChangeAuthorization(应该被弃用)似乎可以完成这项工作。
如果有人有任何好的建议,请告诉我。
locationManagerDidChangeAuthorization
仅适用于 iOS 14。如果您运行的是较早版本的 iOS,则需要使用较旧的方法locationManager:didChangeAuthorization
. 尽管它已被弃用,但它仍然有效(如果您支持较早的 iOS 版本,则必须使用它)。
WWDC 2020 会议中介绍了委托方法更改的原因- 在 iOS 14 中,位置权限具有时间权限(从不/使用时/始终)和新的精度权限(高/低精度)。
原始委托方法将时间权限传递给委托方法,但不传递精度信息(因为该权限以前不存在)。
Apple 没有创建一个新的委托方法来接收时间和精确权限详细信息,而是选择了一种简单的方法来告诉您发生了一些变化。然后您需要编写代码来检查CLLocationManager
以确定您拥有的权限以及如何处理它。
他们为什么这样做,我们只能推测,但我怀疑这让他们可以灵活地在未来添加更多权限,而无需更改方法签名。
归档时间: |
|
查看次数: |
1526 次 |
最近记录: |