【问题标题】:Using the showUserLocation property of MKMapView使用 MKMapView 的 showUserLocation 属性
【发布时间】:2010-12-07 23:23:58
【问题描述】:

我现在有一个应用程序,可以在地图上显示各种图钉。我尝试设置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 时,该应用会以相同的方式做出响应。

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

谢谢 - 詹姆斯

【问题讨论】:

  • 我的临时解决办法是添加一个新图钉并更改它的颜色,但当前位置图钉肯定可以使用吗?
  • 感谢您提出这个问题。它最终也帮助了我!

标签: objective-c gps location mkmapview


【解决方案1】:

请务必在此方法中包含以下内容:

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

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

【讨论】:

  • 嘿,谢谢,我已经有一段时间没有做这个项目了,但我今晚晚些时候会试试,谢谢!!
  • 是的,这就是修复,谢谢!希望这将帮助其他人在未来遇到同样的问题!
  • 谢谢!我正在努力弄清楚为什么我会看到 [MKUserLocation type]: Invalid Selector Sent ... 我无法弄清楚为什么 MKUserLocation 会出现。在这里阅读您的答案后,我意识到这是蓝点!我正在关注的教程没有在地图上显示用户位置,因此在这种情况下这不是问题。
【解决方案2】:

感谢 Berend 回答问题并感谢 james.ingham 提出问题!几个月来我一直在寻找解决这个问题的方法,这个帖子为我解决了这个问题!

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 2013-03-22
    相关资源
    最近更新 更多