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

时间:2015-04-15 18:46:51

标签: ios objective-c mkmapview mapkit mkannotation

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

- (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];
}

1 个答案:

答案 0 :(得分:1)

找一些关键并掌握注释的工作原理。您将在委托方法中添加它们。 (viewForAnnotation

MKPointAnnotations

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

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