gpt4 book ai didi

iphone - 如何检测用户选择不允许用于 iphone 的 MKMapView

转载 作者:可可西里 更新时间:2023-11-01 04:08:56 26 4
gpt4 key购买 nike

我创建了一个使用 mapview 的应用程序。对于 map ,我使用了 MKMapKit 库。当用户在警报窗口中选择“允许”按钮时,一切正常。但我想检测用户何时选择“不允许”。我找到了一个大多数开发人员使用的委托(delegate)

(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

但是代理没有被调用。

也许我遗漏了什么。在我的 header (.h) 文件中,我实现了 MKMapViewDelegate。还有什么我需要做的吗?

我是否需要添加一些额外的类,如 CLLocationManager 或其他。

谢谢,

最佳答案

为了监控位置服务授权状态的变化,您需要实现CLLocationManagerDelegate 方法locationManager:didChangeAuthorizationStatus: 获得类似的内容

-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {

if (status == kCLAuthorizationStatusDenied) {
// permission denied
}
else if (status == kCLAuthorizationStatusAuthorized) {
// permission granted
}
}

有关可能的授权状态及其描述的完整列表,您可以查看 CLAuthorizationStatus 的官方文档.

编辑

您可能已经有了 CLLocationManager 实例,我们称它为 locationManager。然后,为了实现您的委托(delegate),您使您的类符合 CLLocationManagerDelegate 协议(protocol)(您可以在类的 header 中声明它——这不是强制性的,但它会为您提供一些静态检查工具)并分配它到 locationManagerdelegate 属性,如下所示:

locationManager.delegate = self; //assuming that self is gonna be the delegate

如果您按照说明做了所有事情,您的 Controller 将在每次授权更改时被调用,如文档所述:

this method is called whenever the application’s ability to use location services changes.

关于iphone - 如何检测用户选择不允许用于 iphone 的 MKMapView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13910748/

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