2011-06-24 6 views
0

Je sais qu'il y avait une question à ce sujet avant. Cependant, je pense un peu noob parce que je ne peux pas le résoudre.MK Annotation non déclarée

Je reçois cette erreur lorsque vous essayez ceci:

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

J'ai aussi la méthode suivante:

- (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; 
} 

Et le fait #import < MapKit/MKAnnotation.h> en-tête.

Une aide s'il vous plaît?

Merci beaucoup!

Répondre

5

MKAnnotation est un protocole, pas une classe que vous pouvez instancier. Avez-vous défini votre propre classe qui implémente la méthode MKAnnotation et initWithCoordinate:title:? Si c'est le cas, utilisez ce nom de classe et importez son fichier d'en-tête.

Si vous ne l'avez pas créé votre propre classe d'annotation, vous devrez créer un ou vous pouvez utiliser la classe MKPointAnnotation prédéfinie (dans iOS 4+) à la place:

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

Vous aurez doivent également effectuer les opérations suivantes:

  • ajouter le cadre de MapKit au projet
  • ajouter #import <MapKit/MapKit.h> en haut du fichier
  • définir la delegate propriété (ou sortie dans IB) de la vue de la carte autrement viewForAnnotation ne sera pas appelé
Questions connexes