这是我在添加注释时遇到的错误MKMapView
。
我还创建了一个符合协议的自定义类,其中包含MKAnnotation
三个@property
:coordinate
和.title
subtitle
这是我在添加注释时遇到的错误MKMapView
。
我还创建了一个符合协议的自定义类,其中包含MKAnnotation
三个@property
:coordinate
和.title
subtitle
在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;
}
嗨,伙计们,我发现我犯了什么愚蠢的错误,我在我的自定义注释类中将 CLLocationcoordinate2D 的 @property 命名为 Coordinate 不应该重命名,因为它符合 KVO 投诉,所以我们应该按原样使用
@property (nonatomic,assign)CLLocationcoordinate2D 坐标;
通过重命名它解决了我的问题。