gpt4 book ai didi

ios - 位置管理器 :didChangeAuthorization vs locationManagerDidChangeAuthorization

转载 作者:行者123 更新时间:2023-12-01 15:56:55 26 4
gpt4 key购买 nike

在使用 SwiftUI 的 iOS 应用程序中和 CoreLocation .我需要密切关注用户授予位置访问权限的状态。
查看 CLLocationManagerDelegate 的文档,看起来我应该使用 locationManagerDidChangeAuthorization 方法。
问题是这个方法永远不会被调用(据我所知)。此外,另一种方法 locationManager:didChangeAuthorization (应该被弃用)似乎可以完成这项工作。
如果有人有什么好的建议,请告诉我。

最佳答案

locationManagerDidChangeAuthorization仅在 iOS 14 中可用。如果您运行的是较早版本的 iOS,则需要使用较旧的方法 locationManager:didChangeAuthorization .尽管它已被弃用,但它仍然有效(如果您支持早期的 iO​​S 版本,则必须使用它)。
WWDC 2020 session 中介绍了委托(delegate)方法更改的原因。 - 在 iOS 14 中,位置权限具有时间权限(从不/使用时/始终)和新的精度权限(高/低精度)。
原始委托(delegate)方法将时间权限传递给委托(delegate)方法,但不传递精度信息(因为该权限以前不存在)。
Apple 没有创建一个新的委托(delegate)方法来接收时间和精度权限详细信息,而是选择了一种简单的方法来告诉您某些情况发生了变化。然后您需要编写代码来检查 CLLocationManager确定您拥有的权限以及如何处理它。
他们为什么这样做,我们只能推测,但我怀疑这让他们可以灵活地在 future 添加更多权限,而无需更改方法签名。

关于ios - 位置管理器 :didChangeAuthorization vs locationManagerDidChangeAuthorization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62786708/

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