无法找到必要的用户位置图形资产(MapBox)

问题描述:

我们是否需要在主项目中手动导入iOS MapBox SDK中的用户位置图形资产?无法找到必要的用户位置图形资产(MapBox)

如果我试图表现出用户的位置,我得到这个错误(建立在iOS6的iPhone 4S - 登录模拟器的iOS相同的错误5.1)

if (!self.mapView.isUserLocationVisible) { 
    self.mapView.showsUserLocation = YES; 
} 

记录确切的错误是:

[RMUserLocation initWithMapView:坐标:andTitle:],/Users/franco/Apps/XXXX/Application/XXXX/Vendors/mapbox-ios-sdk/MapView/Map/RMUserLocation.m:24 2012-06-13 01:41:52.426 XXXX [2058:907] *由于未捕获的异常'NSIn 'ternalInconsistencyException',原因:'无法找到必要的用户位置图形资产(从MapView/Map/Resources复制)'

感谢您的帮助。

找到的解决方案是,将从MapView/Map/Resources中添加(复制)资产文件到我的根项目

我认为标题搜索路径(设置为$(SRCROOT)/ IntraMuros/Vendors/mapbox-ios-sdk)将使这些资产可用。

可能有更干净的方法来做到这一点。

请注意,资产文件在MapView子项目中可用。

+0

我会让你们找到这个问题的真正解决方案,而不必在根项目中导入资源。 我会接受这个答案。 – rayfranco

我是SDK的开发人员。没有更简单的解决方案,因为SDK构建为静态库,因此不能包含图形资源。您可以做的一件事就是参考资产,不一定要将它们复制到项目中,并使用SDK附带的实际文件。但是我放入NSAssert()以避免开发人员不知道用户位置没有显示的原因。

我还应该补充一点,就像Apple的MapKit一样,isUserLocationVisible属性不用于测试是否显示位置,而是当前是否显示在屏幕上。因此,您应该检查showsUserLocation以确定是否设置showsUserLocation