如何使用 Mabox 和 Swift 检索我下载的离线地图包的列表?

How do I retrieve a list of my downloaded offline map packs using Mabox and Swift?

我想将离线地图功能添加到使用 Swift 和 Mapbox 构建的 iOS 应用程序中。很棒 documentation and examples for downloading a map region pack, but am having a difficult time figuring out how to retrieve a list of offline packs. Their documentation here 给出了这些关于如何接收的说明:

"To detect when the shared offline storage object has finished loading its packs property, observe KVO change notifications on the packs key path. The initial load results in an NSKeyValueChangeSetting change."

但是我很难找到关于这意味着什么的任何示例或解释。任何帮助将不胜感激!

可以使用 MGLOfflineStorage class 的 .packs 属性检索所有已知离线包的数组。像这样:

MGLOfflineStorage.shared.packs

要访问这些包,您只需遍历数组或传递特定索引并从包中检索您感兴趣的任何信息。

在 SDK 的 open source test app 中有一个使用此数组在设备上创建已完成离线包的表视图的很好示例(注意:此示例是在 Obj-C 中编写的)。


⚠️免责声明:我目前在Mabpox工作⚠️

我终于找到了解决办法。要使用 Swift 观察包检索,您可以使用此代码:

MGLOfflineStorage.shared.observe(\.packs, options: [.new, .old]){ object, change in
    var offlinePacksArr : [MGLOfflinePack] = object.packs // Access to packs array here
}