0

我们是否需要在主项目中手动导入来自 iOS MapBox SDK 的用户位置图形资产?

如果我尝试显示用户位置,则会出现此错误(在 iOS6 上的 iPhone 4s 上构建 - 在模拟器 iOS 5.1 上记录了相同的错误)

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

记录的确切错误是:

[RMUserLocation initWithMapView:coordinate: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] *由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法找到必要的用户位置图形资产(从 MapView/Map/Resources 复制)”

谢谢你的帮助。

4

2 回答 2

1

我是 SDK 的开发者。没有更简单的解决方案,因为 SDK 构建为静态库,因此不能包含图形资产。您可以做的一件事是仅引用资产,不必将它们复制到您的项目中,并使用 SDK 附带的实际文件。但我把它放进去是NSAssert()为了避免开发人员不知道为什么用户位置没有出现的情况。

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

于 2012-06-19T18:46:54.287 回答
0

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

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

可能有一种更清洁的方法可以做到这一点。

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

于 2012-06-13T13:52:06.957 回答