ios – 当canShowCallout为YES时必须实现标题

我试图在我的地图注释上显示标注时遇到此异常,即使标题已设置.

这是我在MapAnnotation类中使用的init方法

- (id)initWithTitle:(Nsstring *)ttl subtitle:(Nsstring *)sub andCoordinate:(CLLocationCoordinate2D)c2d {
    titles = ttl;
    coordinate = c2d;
    subtitle = sub;
    return self;
}

然后,在另一个类的某个地方,我正在创建注释(两种不同方法中的2):

MapAnnotation *annotation = [[MapAnnotation alloc] initWithTitle:[formatter stringFromDate:sourceDate] subtitle:@"test" andCoordinate:CLLocationCoordinate2DMake(point.latitude,point.longitude)];
[self.mapView addAnnotation:annotation];

这是注释方法

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
    if (annotation == mapView.userLocation)
        return nil;

    static Nsstring *s = @"ann";
    MKAnnotationView *pin = [mapView dequeueReusableAnnotationViewWithIdentifier:s];
    if (!pin) {
        pin = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:s];
        pin.canShowCallout = YES;
        pin.image = [UIImage imageNamed:@"pin.png"];
        pin.calloutOffset = CGPointMake(0,0);
    }
    return pin;
}

我想做的另一件事是为两个地图注释使用两个不同的图像.
任何的想法?

谢谢.

解决方法

MapAnnotation应该包含title属性,而不是地图标注的标题.声明如下
@property (nonatomic,copy) Nsstring *title;

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...