1

我正在使用 MKMapView 类进行开发,在设备(iPhone5)上运行并使用 AirPlane 模式 ON 时,Wi-Fi ON,

以及 MKMapView 的属性:<code>showsUserLocationsetting 为YES,MKMapView 的委托

- (void)mapView:(MKMapView *)mapView didFailToLocateUserWithError:(NSError *)error

被调用,返回错误

Turn off airplane mode or use Wi-Fi to show your location on the map

告诉我关闭 AirPlane 模式或打开 Wi-Fi 以获取地图上的位置。我的飞行模式开启了,但是我的 Wi-Fi 开启了,怎么找不到我的位置?</p>

是MKMapView的bug,还是别的什么?谢谢!

4

2 回答 2

1

苹果文档说

确定位置服务是否可用

每个基于 iOS 的设备都能够以某种形式支持定位服务,但仍然存在定位服务可能不可用的情况:

用户可以在“设置”应用中禁用定位服务。

用户可以拒绝特定应用的位置服务。

设备可能处于飞行模式,无法启动必要的硬件。由于这些原因,建议您在尝试启动标准或重大更改位置服务之前始终调用 CLLocationManager 的 locationServicesEnabled 类方法。(在 iOS 3.x 及更早版本中,请检查 locationServicesEnabled 属性的值。)如果此类方法返回 YES,您可以按计划启动位置服务。如果它返回 NO 并且您仍然尝试启动定位服务,系统会提示用户确认是否应该重新启用定位服务。鉴于位置服务很可能被故意禁用,用户可能不欢迎此提示。

不,不是一个错误,它在文档中明确说明如何做到这一点

于 2013-06-19T10:31:25.210 回答
0

我相信,当飞行模式打开时,它会关闭所有可能的跟踪您的位置的方法,包括 wi-fi。

您可以通过在通过 wi-fi 连接到互联网并通过 safari 访问任何网页时打开飞行模式在您的设备上进行尝试。

于 2013-06-19T10:24:25.920 回答