所以,我跟着其他相关主题,但由于某种原因,我仍然有这个错误,我准备把头发撕掉。我已经实现了locationManager:didFailWithError来检查并查看用户是否选择“不允许”来使用当前位置。
-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
NSLog(@"IN ERROR");
if ([error code] == kCLErrorDenied){
[manager stopUpdatingLocation];
}
}
但是,当用户选择“不允许”时,总会出现以下错误...这很奇怪,特别是文本“IN ERROR”出现的顺序。
错误,时间,293420691.000,功能,“空隙 CLClientHandleDaemonDataRegistration(__ CLClient * 常量 CLDaemonCommToClientRegistration * const __CFDictionary *)“,服务器没有 接受客户注册1 2010-04-19 21:44:51.000 testApp [1414:207]错误
所以,它甚至在有机会进入didFailWithError函数之前就输出了这个错误。有没有人对可能发生的事情有任何想法? locationManager代码的其余部分如下:
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
locationManager.distanceFilter = 2;
[locationManager startUpdatingLocation];
答案 0 :(得分:0)
看起来只是来自Core Location的信息性消息。它没有崩溃您的应用程序,用户将看不到它,它仍然使用正确的错误代码调用didFailWithError。
在我的测试中,消息显示在iPhone模拟器和设备(3.1.3)和iPad模拟器上,但不在iPad设备上(3.2)。
答案 1 :(得分:0)
如果你也使用MapKit,这是MapKit中的一个错误。 MapKit正在使用Core Location注册,然后在用户拒绝位置更新或未通过时未正确处理报告的错误。它应该通过委托方法传递此错误(就像它对地理编码错误一样),但不是。
不幸的是我想不出任何方法来拦截来自核心位置的消息,因为MapKit维护了一个用于获取位置的CLLocationManager实例,而这是向其委托报告错误的实例。