我有一个应用程序在地图上显示不同的大头针。我尝试将mapView.showsUserLocation = YES;设置为显示用户的当前位置,但这导致我的应用程序崩溃(“程序接收信号: SIGABRT"),并显示以下错误消息:
Mon Oct 19 12:31:27 unknown Hull Ads[3111] <Error>: *** -[MKUserLocation counter]: unrecognized selector sent to instance 0x10ad60
Mon Oct 19 12:31:27 unknown Hull Ads[3111] <Error>: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[MKUserLocation counter]: unrecognized selector sent to instance 0x10ad60'
Mon Oct 19 12:31:27 unknown Hull Ads[3111] <Error>: Stack: (...)这有点令人困惑,因为我没有使用过MKUserLocation,或者这就是问题所在?
该应用程序确实会将CoreLocation用于其他不相关的目的,但是,当CoreLocation尚未使用时,该应用程序会以相同的方式进行响应。
如果有人能帮上忙,那就太棒了!
谢谢-詹姆斯
发布于 2009-12-10 19:08:53
请确保在此方法中包含以下内容:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
if ([annotation class] == MKUserLocation.class) {
return nil;
}
...
}我真的希望你现在已经解决了这个问题;)
发布于 2010-02-22 20:29:44
感谢Berend回答了这个问题,并感谢james.ingham的提问!几个月来,我一直在寻找解决这个问题的方法,这个帖子帮我解决了这个问题!
检查MKUserLocation引脚类型将是最合理的做法。但是谁会记得在实现viewForAnnotation方法时这样做呢?即使您不打算在您的应用程序中使用MKuserlocation,始终执行此检查也是安全的做法,以避免在未来遇到问题。
https://stackoverflow.com/questions/1588202
复制相似问题