对于mapbox的离线使用,我创建了一个mymap.mbtiles文件,我的应用程序将用它来显示地图。用户可以按下按钮,相应的.mbtiles文件将被下载并保存在文档目录中。
但是我的应用程序在这一行崩溃了:
RMMBTilesSource *offlineSource = [[RMMBTilesSource alloc] initWithTileSetResource:@"MYMAP" ofType:@"mbtiles"];
_mapView = [[RMMapView alloc] initWithFrame:self.view.bounds andTilesource:offlineSource];
错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'
就像this问题一样。
这曾经工作正常,但在我更新到MapBox的新版本期间发生了这个错误。
该链接中的问题答案表明您的.mbtiles文件需要成为项目目标的一部分并添加到捆绑包中。是下载文件并将其保存到文件目录还不够?如果没有,我该如何修复它以便.mbtiles文件可以下载而不是由开发人员预先导入。
答案 0 :(得分:2)
尝试-initWithTileSetResource:ofType:
并指向文档目录中的文件,而不是使用-initWithTileSetURL:
(适用于捆绑资源)。