Когда я добавляю MKCircle в оверлей mapKit, я получаю много предупреждений в компиляторе - PullRequest
0 голосов
/ 25 октября 2018

Я пытался выяснить, как избавиться от большого количества предупреждений на своем совете, и я пришел к выводу, что эти предупреждения происходят сразу после того, как я добавляю оверлеи к своей картеKit

, вот часть, где ядобавить оверлеи ..

    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, как узнать, какой из них использовать?

Заранее благодарю за ответы.

1 Ответ

0 голосов
/ 26 октября 2018

Попробуйте следующий код для доступа из основного потока.

DispatchQueue.main.async {
    mapkitView.addOverlay(geo)
}
...