iPhone Dev = mapy i odznaczając adnotacji

głosy
0

Mam powodzeniem rysunek adnotacje na mapie przy użyciu tablicy adnotacji. Mogę nawet kliknąć na adnotacji i zmienić jego kolor lub obraz. Mój problem pojawia się, gdy zastosowanie wybiera drugą adnotacji i chcę, aby dynamicznie zmieniać kolor lub obraz pierwszego z powrotem do nie-wybrany kolor / obraz. Mogę dostać tablicę wszystkich adnotacji i pracować przez tablicę, ale gdy próbuję ustawić kolor lub obraz ot tablicę mam podobny błąd.

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

Powyższy kod działa ok, dopóki mogę ann.image = I; Następnie błędów. Błędy dostaję to: -

  • - [miejsce setImage:]: selektor nierozpoznane wysyłane do przykładu 0x4514370 zakończenie aplikacji ze względu nieprzechwyconego wyjątku „NSInvalidArgumentException”, uzasadnienie: „** - [miejsce setImage:]: selektor nierozpoznane wysyłany do przykładu 0x4514370”

Proszę doradzić jak ja jeździmy w kółko na ten jeden na 2 dni teraz !!!!

Wszelkie pomysły, w jaki sposób najlepiej to zrobić?

z góry dziękuję

Utwórz 29/10/2009 o 13:58
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
0

I w końcu zorientowali się, jak to zrobić. Jak zwykle nie jest to takie trudne, gdy wiesz, jak to zrobić. Wystarczy, że chciałbym to przekazać.

- (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");
    }
  }
Odpowiedział 29/10/2009 o 20:23
źródło użytkownik

głosy
0

Masz nieruchomość na miejsce zwane klasy obraz?

Coś jak ... @property (nonatomic, retain) UIImage* image;i jest to odpowiednio syntetyzowane? @synthesize image;?

Błąd jest dość proste, niektóre obiekt odbiera wiadomość, że nie reaguje, a mianowicie „setImage”, która jest wywoływana przez .image.

Oto kod:

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. }

Co widzę:

  • Ann jest MKAnnotationView (od map.selectedAnnotations)
  • jesteś typecasting adnotacji do miejsca na linii 3 (jest to prawo? Czy Place podklasa MKAnnotationView?)
  • są odpowiednio ustawienia obrazu do adnotacji

Co to znaczy:

  • Jeśli miejsce jest rzeczywiście podklasą MKAnnotationView, ty się (jakoś) metodę setImage ukrywała
  • Jeśli miejsce nie jest podklasą MKAnnotationView, dodasz niepoprawną adnotację do adnotacji (pewien), że jesteś stara się traktować jako adnotacji.
Odpowiedział 29/10/2009 o 14:05
źródło użytkownik

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