Swift 4 : 如何在添加引脚之前等待加载 MKMapView

Swift 4 : how to wait for a MKMapView to be loaded before adding pins

嗯,标题很漂亮self-explanatory。我有一个具有不同视图的小应用程序,它一直崩溃,我认为这是因为我试图在创建地图之前在地图上添加图钉(调试器告诉 object 为零)。如何等待地图加载并显示在当前视图中?这是我的应用程序 ViewController 的代码:

import UIKit
import MapKit

class ViewController: UIViewController {

      @IBOutlet weak var mapView: MKMapView!

      override func viewDidLoad() {

          super.viewDidLoad()

          let coordinate_Mines = CLLocationCoordinate2D(latitude: 43.445258, longitude: 5.479400) //à remplacer ensuite par dernier coordonnés GPS utilisateur
          let region = MKCoordinateRegionMakeWithDistance(coordinate_Mines, 1000, 1000)
          mapView.setRegion(region, animated: true)

          var pinCapteurTest: AnnotationPin!
          pinCapteurTest = AnnotationPin(title: "Capteur de test", subtitle: "Entrée de l'école", coordinate: CLLocationCoordinate2D(latitude: 43.445202, longitude: 5.479456)) //coord capt test
          mapView.addAnnotation(pinCapteurTest)
     }
}

这是我的 MainStoryBoard: enter image description here

谢谢大家:)

您可以使用 MKMapViewDelegate 扩展 ViewController,下面的方法是您可以添加注释的地方。

public func mapViewDidFinishLoadingMap(_ mapView: MKMapView) {

}

在您的 viewDidLoad

中将 mapView 委托设置为 self
override func viewDidLoad() {
   super.viewDidLoad()

   mapView.delegate = self
}