我知道之前有一个问题。但是,我觉得有点像菜鸟,因为我无法解决它。
尝试此操作时出现错误:
MKAnnotation *annotation = [[MKAnnotation alloc] initWithCoordinate:coordenada title:@"HELLO!"];
[mapa addAnnotation:annotation];
我也有以下方法:
- (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id<MKAnnotation>) annotation
{
MKPinAnnotationView *pin = (MKPinAnnotationView *) [self.mapa dequeueReusableAnnotationViewWithIdentifier: @"asdf"];
if (pin == nil)
{
pin = [[[MKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"asdf"] autorelease];
}
else
{
pin.annotation = annotation;
}
pin.pinColor = MKPinAnnotationColorRed;
pin.animatesDrop = YES;
return pin;
}
标题中的#import < MapKit/MKAnnotation.h>
。
请帮忙吗?
非常感谢!
答案 0 :(得分:6)
MKAnnotation
是一个协议,而不是可以实例化的类。
您是否定义了自己的实现MKAnnotation
和initWithCoordinate:title:
方法的类?如果有,请使用该类名并导入其头文件。
如果您尚未创建自己的注释类,则必须创建一个或者您可以使用预定义的MKPointAnnotation
类(在iOS 4+中):
MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
annotation.coordinate = coordenada;
annotation.title = @"HELLO!";
[mapa addAnnotation:annotation];
[annotation release];
您还需要执行以下操作:
#import <MapKit/MapKit.h>
delegate
属性(或IB中的插座),否则将不会调用viewForAnnotation