今天我开始使用ADClusterMapView(https://github.com/applidium/ADClusterMapView)并研究了示例项目...所以我决定将内容添加到我的项目......每件事都没有红色错误......模拟器转了并且发布了一个帖子...我试图找出问题好几个小时......所以也许你知道问题出在哪里......
-(void)viewDidLoad {
[ADClusterMapView class];
NSArray* airports = [Airport allAirports];
[mapView setAnnotations:airports];
[mapView setVisibleMapRect:MKMapRectWorld];
}
-(MKAnnotationView*)mapView:(MKMapView *)aMapView viewForAnnotation:(id<MKAnnotation>)annotation {
static NSString* reuseIdentifier = @"airportAnnotation";
if ([annotation isKindOfClass:[Airport class]]) {
MKAnnotationView* annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:reuseIdentifier];
if (!annotationView) {
annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuseIdentifier] autorelease];
annotationView.canShowCallout = YES;
}
annotationView.image = ((Airport*)annotation).icon;
return annotationView;
}
}
- (MKAnnotationView *)mapView:(ADClusterMapView *)aMapView viewForClusterAnnotation:(id<MKAnnotation>)annotation {
MKAnnotationView * annotationView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"ADMapCluster"];
if (!annotationView) {
annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:@"ADMapCluster"]
autorelease];
annotationView.image = [UIImage imageNamed:@"circle.png"];
annotationView.canShowCallout = YES;
}
else {
annotationView.annotation = annotation;
}
return annotationView;
}
debuger中的错误是:
机场[3489:c07] - [MKMapView setAnnotations:]:无法识别的选择器发送到实例0x8095570 机场[3489:c07] *由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [MKMapView setAnnotations:]:无法识别的选择器发送到实例0x8095570' * 第一次抛出调用堆栈: (0x1945012 0x1275e7e 0x19d04bd 0x1934bbc 0x193494e 0x2b6e 0x29e817 0x29e882 0x1eda25 0x1ee311 0x28db 0x1ba7b7 0x1bada7 0x1bbfab 0x1cd315 0x1ce24b 0x1bfcf8 0x18a0df9 0x18a0ad0 0x18babf5 0x18ba962 0x18ebbb6 0x18eaf44 0x18eae1b 0x1bb7da 0x1bd65c 0x282d 0x2765) libc ++ abi.dylib:terminate调用抛出异常 sharedlibrary apply-load-rules all 当前语言:auto;目前的目标-c
答案 0 :(得分:1)
[mapView setAnnotations:airports];
似乎是个问题。
来自doc,只有addAnnotations:
,addAnnotation:
及其移除等效版本可用。另外,annotations
属性为readonly
,因此setAnnotations
崩溃,正常
答案 1 :(得分:1)
显然,它发生了,因为您忘记更改Identity Inspector上的自定义类(右侧实用程序)。只需将值设置为ADClusterMapView。