【发布时间】:2013-08-05 20:40:30
【问题描述】:
我有一个我无法理解的问题,我正在使用一个库来使用 Map Open Source Map (https://github.com/route-me/route-me),该示例运行良好,我相信与代码无关,我相信这是配置中的一些东西。 那么如果我拨打以下电话会发生什么:
RMMarkerManager *markerManager = [mapView markerManager];
我收到一条错误消息,提示 UIView 类没有方法 markerManager:
2013-08-05 17:18:33.573 MapOffline[1310:907] 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[UIView markerManager ]: 无法识别的选择器发送到实例 0x1d88fbb0'*
No entanto, se eu adicionar a validação, o código funciona perfeitamente:
if ([mapView isKindOfClass:[RMMapView class]]) {
RMMarkerManager *markerManager = [mapView markerManager];
}
示例项目没有此验证并且可以工作,有人可以告诉我可以吗? 每当您使用此类的方法时,验证都是不好的做法。
注意:RMMarkerManager 类继承自 UIView。
在我的案例中发生的情况是,我没有参考示例中项目正在使用的某些图像。 老实说,我不知道这与另一件事有什么关系,在项目中添加图像之后,一切都运行良好。 我保证我没有进行任何其他更改。
我的 .xib 始终按应有的方式配置和引用所有内容。
我不明白为什么会这样,这是我的解决方案。
:-/
【问题讨论】:
-
您是如何设置地图视图的?以编程方式(在代码中)还是通过 xib 或故事板文件?
-
如果您使用情节提要,则需要将视图的“自定义类”(在身份检查器面板中)设置为 RMMapView。否则故事板不知道为您的视图实例化哪个类。
-
是的......这就是我想要说的答案,如果玻利瓦尔跟进我的评论。既然你也有这个想法,我会让你在下面正式宣布。
-
这似乎是人们对故事板和 XIB 最常见的问题之一......
-
先生们,我的 xib 配置正确......请注意,当我添加验证时,代码会识别类。无论如何,它会在验证中执行代码......还请注意,该项目由一个子项目组成,该子项目包含类 RMMarkerManager。不需要任何其他配置吗?
标签: ios objective-c map openstreetmap