【发布时间】:2009-10-23 14:08:18
【问题描述】:
当我在 iPhone 上安装我的应用程序时,它会在警报中使用“不允许”和“确定”选项询问当前位置。我如何找出选择了哪个选项?我也想只显示一次这个选项。如果用户选择允许找到他们当前的位置,我希望设备在后台自动获取位置。
【问题讨论】:
标签: iphone objective-c iphone-sdk-3.0 core-location
当我在 iPhone 上安装我的应用程序时,它会在警报中使用“不允许”和“确定”选项询问当前位置。我如何找出选择了哪个选项?我也想只显示一次这个选项。如果用户选择允许找到他们当前的位置,我希望设备在后台自动获取位置。
【问题讨论】:
标签: iphone objective-c iphone-sdk-3.0 core-location
如果用户拒绝访问位置服务,则调用 CLLocationManager 委托方法 didFailWithError::
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
if (error.code == kCLErrorDenied){
// User denied access to location service
}
}
【讨论】:
您的控制器应该实现CLLocationManagerDelegate 协议。这定义了您需要实现的两种方法:
– locationManager:didUpdateToLocation:fromLocation:
在这种方法中,您将代码用于处理位置更新。
– locationManager:didFailWithError:
在这种方法中,您可以使用代码来处理用户拒绝您的请求或更新失败。
一旦用户允许您使用他们的位置,除非他们退出应用程序,否则不会再次提示他们。不过,没有办法阻止手机在用户每次启动应用时都提示他们。
【讨论】: