Mapbox在ios中使用mbtiles时显示异常并终止

Posted

技术标签:

【中文标题】Mapbox在ios中使用mbtiles时显示异常并终止【英文标题】:Mapbox show Exception and terminate when using mbtiles in ios 【发布时间】:2013-06-24 08:22:11 【问题描述】:

我正在使用 MapBox 示例并且我已经导入了我的 mbtiles 文件。我收到此错误:

MB 示例[8517:c07] * 由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'* -[NSURL initFileURLWithPath:]: 零字符串参数'

我已经检查了我的 mbtile 文件及其在 x-code 上的加载,所以没有问题。

【问题讨论】:

试试这个:***.com/a/20531295/2245407 【参考方案1】:

RMMBTilesSource 确实在使用该代码。您需要确保您的 OSMBright.mbtiles 文件是项目目标的一部分并被添加到您的包中,以便可以将其作为切片源提取。就像您需要在应用程序中使用的任何资源一样,仅仅成为 Xcode 项目的一部分是不够的。

【讨论】:

【参考方案2】:

从您的问题本身可以清楚地看出崩溃的原因。 原因:[NSURL initFileURLWithPath:]:nil 字符串参数。 您正在初始化 NSURL,但未传递 nil 参数。搜索initFileURLWithPath,查看参数是否为nil

 [NSURL initFileURLWithPath:] // Pass a valid path here

【讨论】:

RMMBTilesSource *offlinesource=[[RMMBTilesSource alloc]initWithTileSetResource:@"OSMBright" ofType:@"mbtiles"];这是创建异常的一行代码 可能是 RMMBTilesSource 使用该代码。在 xcode 中按 cmd+shift+F 然后搜索该字符串【参考方案3】:

您的问题无法以当前格式正确回答。您需要添加与问题相关的代码。

问题是您将 nil 参数传递给 initFileURLWithPath 方法。

mbtiles 文件可能丢失。所以它会return nil,也可以在 Mapbox 中发布。

请检查您是否将其正确添加到项目中。

【讨论】:

【参考方案4】:

有同样的错误。您确定将 MapBox.bundle 从 .framework 复制到您的 Xcode-Project 中,如此处所述: https://www.mapbox.com/mapbox-ios-sdk/

? 这为我解决了问题!

【讨论】:

以上是关于Mapbox在ios中使用mbtiles时显示异常并终止的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7 中的 MKTileOverlay 与 mbtiles 数据库

基于 MBTiles 规范扩展的缓存文件格式说明

支持 MBTiles 规范的预缓存

悬停时显示/隐藏下拉菜单 Flutter for web

离线使用 Mapbox GL

[转]MBTiles 1.2 规范翻译