2009-10-19 63 views
6

我有一个应用程序在此刻显示地图上的各种引脚。我试过设置mapView.showsUserLocation = YES;显示用户的当前位置,然而这坠毁我的应用程序(“程序接收到的信号:SIGABRT”),出现以下错误信息:使用MKMapView的showUserLocation属性

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尚未被使用时以相同的方式响应。

如果任何人都可以提供帮助,那就太棒了!

感谢 - 詹姆斯

+0

我的临时修补程序是添加一个新的针并更改它的颜色,但当前位置引脚当然应该可以使用? – 2009-10-20 23:05:58

+0

感谢您提出这个问题。它最终也帮助我! – Kenny 2013-07-26 14:02:59

回答

24

一定要包括在该方法如下:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { 
    if ([annotation class] == MKUserLocation.class) { 
     return nil; 
    } 
    ... 
} 

我希望你已经通过,现在解决了这个问题;)

+0

嘿,谢谢,我一直没有在这个项目上工作一段时间,但我会在今晚晚些时候尝试,谢谢! – 2009-12-11 12:08:34

+0

是的,这是修复,谢谢!希望这将有助于未来同样的问题的其他人! – 2009-12-16 14:17:19

+0

谢谢,这帮了我! – mservidio 2012-01-27 01:43:38

1

感谢贝伦德回答这个问题和james.ingham询问它!几个月来我一直在寻找解决这个问题的方法,并且这个线程为我解决了这个问题!

检查MKUserLocation引脚类型是最合乎逻辑的事情。但是,在实现viewForAnnotation方法时,谁会记得这么做。即使您不打算在应用程序中使用MKuserlocation,也应该始终执行此检查以避免将来遇到问题。

+1

欢迎来到堆栈溢出 – 2010-02-22 15:08:51