2011-11-17 58 views

回答

2

在早期版本中,你locationManager:didFailWithError:委托方法将错误说法kCLErrorDenied

+0

谢谢丹尼斯,这很奇怪因为我其实也有方法locationManager:didFailWithError。为什么当用户使用4.1时会出现此错误? :+ [CLLocationManager authorizationStatus]:无法识别的选择器发送到类0x3e2ee618 Thu Nov 17 12:23:49 unknown :***终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:'+ [CLLocationManager authorizationStatus]:无法识别的选择器发送到类0x3e2ee618'。看起来像位置管理器:didChangeAuthorizationStatus:正在调用,而不是locationManager:didFailWithError: – teepusink

+0

之前,唯一获知错误的方法是处理didFailWithError委托方法,所以当用户拒绝位置访问时,在下一次尝试获取位置时 - 您将收到didFailWithError;在4.2中,Apple增加了有关用户禁止访问应用程序位置数据的更加舒适的单独通知;发生崩溃的原因确实是在authorizationStatus选择器发送时,它在iOS 4.2之前并不存在;所以你必须检查实际的iOS版本,然后再调用它 – Denis

1

具有的LocationManager叫。在某个地方,您必须将一个authorizationStatus消息发送给在4.2之前未被识别的CLLocationManager实例。

+0

谢谢,是的,发现它是在别的地方。有时你只看着这么长时间的代码就看不到更大的图像。 D'哦。 – teepusink