iPhone Dev = hărți și adnotări debifarea

voturi
0

Desenez cu succes adnotări pe hartă utilizând o serie de adnotări. Pot chiar să faceți clic pe adnotare și schimba culoarea este sau imagine. Problema mea apare atunci când utilizarea selectează a doua adnotare și vreau să schimbe dinamic culoarea sau imaginea primul înapoi la o culoare / imagine neselectate. Pot obține matricea tuturor adnotărilor și de a lucra prin matrice, dar odată ce am încerca pentru a seta culoarea sau imaginea ot matrice I a lua o eroare similară.

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

codul de mai sus funcționează bine până când ajung la ann.image = i; atunci acesta erori. Erorile pe care le primesc sunt: ​​-

  • - [Locul setImage:]: selector nerecunoscut trimis la instanță 0x4514370 terminator app din cauza excepție neînregistrată 'NSInvalidArgumentException', motiv: '** - [Locul setImage:]: selector nerecunoscut trimis spre exemplu 0x4514370'

Vă rugăm să comunicați așa cum am fost întâmplă în jurul valorii în cercuri pe acesta timp de 2 zile acum !!!!

Orice idei cu privire la modul cel mai bine să facă acest lucru?

mulțumesc anticipat

Întrebat 29/10/2009 la 13:58
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
0

În cele din urmă am dat seama cum să facă acest lucru. Ca de obicei nu e așa de greu odată ce știi cum. M-am gândit să trec asta.

- (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");
    }
  }
Publicat 29/10/2009 la 20:23
sursa de către utilizator

voturi
0

Ai o proprietate pe locul clasa numita imagine?

Ceva de genul ... @property (nonatomic, retain) UIImage* image;și este sintetizat în mod corespunzător? @synthesize image;?

Eroarea este destul de drept înainte, un obiect primește un mesaj care nu răspunde la acestea, și anume „setImage“, care este invocată de .image.

Aici este codul:

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

Ceea ce pot vedea:

  • ann este un MKAnnotationView (din map.selectedAnnotations)
  • sunteți typecasting adnotare la un loc pe linia 3 (este acest drept? Are loc subclasă MKAnnotationView?)
  • setați corect imaginea la adnotarea

Ce inseamna asta:

  • Dacă Place este într-adevăr, o subclasă de MKAnnotationView, ai ascuns metoda setImage (cumva)
  • În cazul în care loc nu este o subclasă de MKAnnotationView, ați adăugat o adnotare nevalidă pentru adnotări (sigur) pe care încercați să o trateze ca o adnotare.
Publicat 29/10/2009 la 14:05
sursa de către utilizator

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