Mapbox MGLAnnotations 未在 MapView for Mapbox iOS 上呈现

Mapbox MGLAnnotations not rendering on MapView for Mapbox iOS

我一直在为我的 SwiftUI 应用程序使用 MapBox 进行测试,但我 运行 遇到了我的注释没有出现在我的 MapView 上的问题,即使它们似乎已被添加。我在 updateUIView 上调用的 updateAnnotations 命令的代码是:

    private func updateAnnotations() {
        if let currentAnnotations = mapView.annotations {
            mapView.removeAnnotations(currentAnnotations)
        }
        
        for marker in devices.positions {
            let annotation = MGLPointAnnotation(title: marker.name, coordinate: marker.coordinate)
            mapView.addAnnotation(annotation)
            print("ADDED \(annotation)")
            print(mapView.annotations)
        }
    }

devices 是一个 @ObservedObject,包含一个 positions 点数组,带有要绘制的标题和坐标。这段代码的输出是:

ADDED <MGLPointAnnotation: 0x285abc9f0; title = "Test"; subtitle = (null); coordinate = -36.892800, 174.625000>
Optional([<MGLPointAnnotation: 0x2866b7c60; title = "Test"; subtitle = (null); coordinate = -36.892800, 174.625000>])

这对我来说没有意义 - 输出表明注释已创建但未显示在地图上。任何帮助将不胜感激。

您需要在使用 SwiftUI 时传入 MapView - 例如将 updateAnnotations() 更改为 updateAnnotations(_ mapView: MGLMapView)