0

我试图弄清楚如何在我的委员会上摆脱很多警告,我得出的结论是,这些警告发生在我将叠加层添加到我的 mapKit 之后

这是我添加叠加层的部分..

    let FireLocation = CLLocationCoordinate2D(latitude: 40.836352, longitude: 14.306019)
    let CircularRegion = CLCircularRegion(center: FireLocation, radius: 500, identifier: "fire")
    CircularRegion.notifyOnEntry = true
    CircularRegion.notifyOnExit = true
    self.locatManager.startMonitoring(for: CircularRegion)

     let geo = MKCircle(center: FireLocation, radius: CircularRegion.radius)
     mapkitView.addOverlay(geo)

之后,我在委托方法上自定义这些覆盖......

  func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {

        guard let circularOverlay = overlay as? MKCircle else {return MKOverlayRenderer()}


        let renderer = MKCircleRenderer(overlay: circularOverlay)
        renderer.strokeColor = .red
        renderer.fillColor = .yellow
        renderer.alpha = 0.3
        renderer.lineWidth = 2

        return renderer
    }

我在控制台上收到的警告...

2018-10-25 15:09:04.919237+0200 SeeFire[37911:13344200] 在从主线程访问引擎后,此应用程序正在从后台线程修改自动布局引擎。这可能导致引擎损坏和奇怪的崩溃。2018-10-25 15:09:04.921562+0200 SeeFire[37911:13344200] 在从主线程访问引擎后,此应用程序正在从后台线程修改自动布局引擎。这可能导致引擎损坏和奇怪的崩溃。

如果我评论我添加覆盖的行没有出现警告并且一切都很好,我做错了什么?

MKCircleRenderer 和 MKCircleView 有什么区别我怎么知道我应该使用哪一个?

预先感谢您的回答。

4

1 回答 1

0

尝试以下代码从主线程访问。

DispatchQueue.main.async {
    mapkitView.addOverlay(geo)
}
于 2018-10-26T01:04:01.137 回答