iOS无法访问MKAnnotation的属性

时间:2014-01-23 23:23:05

标签: ios objective-c mkmapview mkannotation mkannotationview

我似乎无法访问mapView中的自定义MKAnnotation属性:viewForAnnotation委托方法。据我了解,该方法将注释作为值。我正在尝试定位传入的每个注释的属性。

代码

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
    //This actually returns a proper coordinate
    NSLog(@"%f", annotation.coordinate.latitude);

    //This gives me an error: Property 'annotationMarker' not found on object of type '__strong id<MKAnnotation>'
    NSLog(@"%@", annotation.annotationMarker);

    MKAnnotationView *testPin = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"current"];

    testPin.image = [UIImage imageNamed:[[testArray objectAtIndex:1]annotationMarker]];

    return testPin;
}

我想也许自定义属性设置不正确,但我能够在代码的其他部分记录这些注释的属性值。

我是否犯了某种语法错误?这种委托方法是否以某种方式剥离自定义属性?

1 个答案:

答案 0 :(得分:3)

您需要转换为自定义MKAnnotation - 符合要求的类,例如

CustomAnnotation *customAnnotation = (CustomAnnotation *)annotation;
NSLog(@"%@", customAnnotation.annotationMarker);