2011-06-24 66 views
0

我知道之前有個問題。不過,我覺得有點noob,因爲我不能解決它。MKAnnotation undeclared

嘗試這個當我得到這個錯誤:

MKAnnotation *annotation = [[MKAnnotation alloc] initWithCoordinate:coordenada title:@"HELLO!"]; 
[mapa addAnnotation:annotation]; 

我也有以下方法:

- (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id<MKAnnotation>) annotation 
{ 
    MKPinAnnotationView *pin = (MKPinAnnotationView *) [self.mapa dequeueReusableAnnotationViewWithIdentifier: @"asdf"]; 
    if (pin == nil) 
    { 
     pin = [[[MKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"asdf"] autorelease]; 
    } 
    else 
    { 
     pin.annotation = annotation; 
    } 
    pin.pinColor = MKPinAnnotationColorRed; 
    pin.animatesDrop = YES; 
    return pin; 
} 

並沒有在標題中的#import < MapKit/MKAnnotation.h>

請幫忙嗎?

非常感謝!

回答

5

MKAnnotation是一個協議,而不是您可以實例化的類。

您是否定義了自己的類,該類實現了MKAnnotationinitWithCoordinate:title:方法?如果有,請使用該類名稱並導入其頭文件。

如果您還沒有創建自己的註釋類,你必須創建一個或者你可以使用預先定義的MKPointAnnotation類(在iOS 4以上版本),而不是:

MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init]; 
annotation.coordinate = coordenada; 
annotation.title = @"HELLO!"; 
[mapa addAnnotation:annotation]; 
[annotation release]; 

你還需要做到以下幾點:

  • 的MapKit框架添加到項目
  • 在文件
  • 設置的頂部添加#import <MapKit/MapKit.h>delegate地圖視圖中的財產(或IB中的插座)否則viewForAnnotation將不會被調用