iPhone Dev = Karten und Abwahl von Annotationen

stimmen
0

Ich zeichne erfolgreich Anmerkungen auf einer Karte eine Reihe von Anmerkungen verwenden. Ich kann auch auf die Anmerkung klicken und es ist Farbe oder das Bild ändern. Mein Problem entsteht, wenn die Verwendung der zweiten Anmerkung auswählt und ich möchte dynamisch die Farbe oder das Bild des ersten zu einem nicht ausgewählten Farbe / Bild zurück ändern. Ich kann das Array aller Anmerkungen erhalten und die Array durcharbeiten, aber wenn ich versuche, die Farbe oder das Bild ot das Array gesetzt ich einen ähnlichen Fehler.

for (MKAnnotationView *ann in map.selectedAnnotations){ 
  if ([ann isMemberOfClass:[Place class]]) { 
    place = (Place *)ann; 
      if (currentPlaceID != place.placeID) { 
        UIImage *i = [UIImage imageNamed:@pin.png];
        ann.image = i; 
      }
}

Der obige Code funktioniert ok, bis ich ann.image bekommen = i; dann Fehler. Die Fehler, die wir bekommen sind: -

  • - [Ort setImage:]: Unbekannter Selektor an Instanz gesendet 0x4514370 App beendet aufgrund nicht abgefangene Ausnahme 'NSInvalidArgumentException', Grund: '** - [Ort setImage:]: Unbekannter Selektor an Instanz gesendet 0x4514370'

Bitte raten, wie ich jetzt im Kreis auf diesen einen für 2 Tage geht um worden !!!!

Alle Ideen, wie man am besten, dies zu tun?

Danke im Voraus

Veröffentlicht am 29/10/2009 um 13:58
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
0

Ich endlich herausgefunden, wie dies zu tun. Wie üblich ist es nicht so schwer, wenn Sie wissen, wie. Ich dachte, ich dies weitergeben würde.

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
  {
    [super setSelected:selected animated:animated];
    NSLog(@"here I am in set selected");
    if (YES == selected)
    {
       NSLog(@"I am selected");
    }
    else 
   {
     self.backgroundColor = [UIColor clearColor];
      NSLog(@"not selected");
    }
  }
Beantwortet am 29/10/2009 um 20:23
quelle vom benutzer

stimmen
0

Haben Sie eine Immobilie an der Klasse Platz genannt Bild?

So etwas wie ... @property (nonatomic, retain) UIImage* image;und ist es richtig synthetisiert? @synthesize image;?

Der Fehler ist ziemlich geradlinig, ein Objekt eine Nachricht erhält, dass es nicht zu, nämlich ‚setImage‘ reagiert, die durch die .image aufgerufen wird.

Hier ist der Code:

1. for (MKAnnotationView *ann in map.selectedAnnotations) {
2.    if ([ann isMemberOfClass:[Place class]]) {
3.        place = (Place *)ann;
4.        if (currentPlaceID != place.placeID) {
5.           UIImage *i = [UIImage imageNamed:@"pin.png"];
6.           ann.image = i;
7.        }
8.    }
9. }

Was kann ich sehen:

  • ann ist ein MKAnnotationView (von map.selectedAnnotations)
  • Sie Ihre Anmerkung an einen Ort auf der Leitung typecasting 3 (dieses Recht ist? Gibt es Platz Unterklasse MKAnnotationView?)
  • Sie setzen das Bild richtig auf die Anmerkung

Was dies bedeutet:

  • Wenn Platz in der Tat eine Unterklasse von MKAnnotationView ist, versteckte man die setImage (irgendwie) Methode
  • Wenn Platz nicht eine Unterklasse von MKAnnotationView ist, haben Sie eine ungültige Anmerkung zu den Anmerkungen (sicher) hinzugefügt, die Sie versuchen, als Anmerkung zu behandeln.
Beantwortet am 29/10/2009 um 14:05
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more