1

这是我在添加注释时遇到的错误MKMapView

我还创建了一个符合协议的自定义类,其中包含MKAnnotation三个@property:coordinate和.titlesubtitle

在此处输入图像描述

4

2 回答 2

0

viewForAnnotation:方法中首先检查注释是哪种类..检查它YourCustomAnnotationClass然后进入然后检查它是否不是 nil 如果nil然后分配它MKAnnotationView然后alloc编写你的代码...

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
     static NSString *identifier = @"Current";
     if ([annotation isKindOfClass:[YourCustomAnnotationClass class]]) { /// check here that is your class annotation or not here..

           MKAnnotationView *annotationView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:identifier];

           if (annotationView == nil) // also check here that it is not nil if nil then alloc it
           {
               annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier] autorelease];
           }
           /// write your code here
     }
    return nil;
}
于 2013-07-04T07:00:18.450 回答
0

嗨,伙计们,我发现我犯了什么愚蠢的错误,我在我的自定义注释类中将 CLLocationcoordinate2D 的 @property 命名为 Coordinate 不应该重命名,因为它符合 KVO 投诉,所以我们应该按原样使用

@property (nonatomic,assign)CLLocationcoordinate2D 坐标;

通过重命名它解决了我的问题。

于 2013-07-30T08:57:26.077 回答