gpt4 book ai didi

ios - "Listening"用于 CLLocationManager.locationServicesEnabled() 改变

转载 作者:行者123 更新时间:2023-11-28 21:30:35 25 4
gpt4 key购买 nike

我的应用程序中有 GPS 记录功能。在我的应用程序“设置页面”中,有几个选项可以为此功能配置。但是,此功能取决于启用的位置服务(在实际 iPhone 本身上)。因此,对于可配置选项,我让它检查 locationServicesEnabled(),如果为假,则禁用设置选项的能力。

但是,看到我添加的选项下方的文字“需要启用定位服务”,用户很可能会点击主页按钮,进入 iPhone 设置,启用定位服务,然后返回应用程序进行配置设置。但是,由于我在 viewDidAppear() 中更改了启用/禁用选项,因此他们必须离开当前 View 并返回以启用选项。

那么(最好是在 Swift 中),是否有一种简单的方法来监听 locationServicesEnabled() 的变化,如果是,则执行一个函数,在这种情况下将重新启用我的应用程序中的可配置选项。谢谢!

编辑:看来我可以使用 CLLocationManagerDelegate 的委托(delegate)方法 didChangeAuthorizationStatus。这是解决此问题的正确方法吗?

最佳答案

您应该创建位置管理器的实例并将自己设置为它的委托(delegate)。

然后您应该实现 didChangeAuthorizationStatus 委托(delegate)方法。如果用户授权您的应用使用位置服务,它将被调用。

您可以在每个需要了解此更改的 View Controller 中创建位置管理器的实例,或者创建您自己的类来管理位置管理器的实例(“位置管理器管理器”,如果您愿意的话) .我会让那个类(class)成为单例。然后您可以让它在位置管理器更改时广播自定义通知。

我建议创建一个单例来保存和管理位置管理器的单个实例。这就是我通常做的。

关于ios - "Listening"用于 CLLocationManager.locationServicesEnabled() 改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36226999/

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