群集注释不起作用

时间:2013-12-26 01:41:50

标签: ios objective-c mkmapview mapkit mkannotationview

今天我开始使用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

2 个答案:

答案 0 :(得分:1)

[mapView setAnnotations:airports];似乎是个问题。 来自doc,只有addAnnotations:addAnnotation:及其移除等效版本可用。另外,annotations属性为readonly,因此setAnnotations崩溃,正常

答案 1 :(得分:1)

显然,它发生了,因为您忘记更改Identity Inspector上的自定义类(右侧实用程序)。只需将值设置为ADClusterMapView。