我应该在哪里添加 MKPointAnnotation 到 MKMapView?

Where should I add MKPointAnnotation to MKMapView?

我想向我的 MKMapView 添加一些 MKPointAnnotations,目前我正在 MKMapViewDelegates 方法 - (void)mapView:(RCTMap *)mapView regionDidChangeAnimated:(BOOL)animated 中这样做。但是当我这样做时,我的应用程序中的地图添加了注释,但静默崩溃(不再响应任何内容)。在哪里添加这些注释更合适?我的代码目前看起来像这样:

- (void)mapView:(RCTMap *)mapView regionDidChangeAnimated:(BOOL)animated
{
  # ...

  for (NSDictionary *pin in mapView.pins) {
    [self _addPin:pin ToMapView:mapView];
  }
}

#pragma mark Private

- (void)_addPin:(NSDictionary *)pinObject ToMapView:(RCTMap *)mapView
{
  MKPointAnnotation *pin = [[MKPointAnnotation alloc] init];
  CLLocationCoordinate2D coords;
  coords.latitude = [[pinObject valueForKey:@"latitude"] doubleValue];
  coords.longitude = [[pinObject valueForKey:@"longitude"] doubleValue];
  pin.coordinate = coords;

  pin.title = [pinObject valueForKey:@"title"];
  pin.subtitle = [pinObject valueForKey:@"subtitle"];
  [mapView addAnnotation:pin];
}

找到一些 tuts 并了解注释的工作原理。您将在委托方法中添加它们。 (viewForAnnotation)

对于MKPointAnnotations

http://www.devfright.com/mkpointannotation-tutorial/

对于自定义注释(MKAnnotationViewhttps://bakyelli.wordpress.com/2013/10/13/creating-custom-map-annotations-using-mkannotation-protocol/