iPhone Dev = kart og fravelge kommentarer

stemmer
0

Jeg lykkes å tegne merknader på et kart ved hjelp av en rekke merknader. Jeg kan til og med klikke på merknader og endre det er farge eller bilde. Mitt problem oppstår når bruken velger andre merknader og jeg ønsker å endre dynamisk fargen eller bildet av den første tilbake til en ikke-valgt farge / bilde. Jeg kan få rekken av alle kommentarene og arbeide gjennom rekke, men når jeg prøver å sette farge eller bilde ot rekken jeg få en lignende feil.

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

koden ovenfor fungerer ok før jeg får ann.image = i; Da er det feil. Feilene jeg får er: -

  • - [Place setImage:]: ukjent velgeren sendt til eksempel 0x4514370 Avslutte app grunn uoppfanget unntak 'NSInvalidArgumentException', grunn: '** - [Place setImage:]: ukjent velgeren sendt til forekomst 0x4514370'

Vennligst informer som jeg har gått rundt i sirkler på dette i 2 dager nå !!!!

Noen ideer om hvordan best å gjøre dette?

takk på forhånd

Publisert på 29/10/2009 klokken 12:58
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Jeg har endelig funnet ut hvordan du gjør dette. Som vanlig er det ikke så vanskelig når du vet hvordan. Tenkte jeg skulle sende dette videre.

- (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");
    }
  }
Svarte 29/10/2009 kl. 19:23
kilden bruker

stemmer
0

Har du en eiendom på klassen sted som heter image?

Noe sånt ... @property (nonatomic, retain) UIImage* image;og er det riktig syntetisert? @synthesize image;?

Feilen er ganske rett frem, noen objekt mottar en melding om at den ikke svare på, nemlig 'setImage' som er påberopt av .image.

Her er koden:

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

Det jeg kan se:

  • ann er en MKAnnotationView (fra map.selectedAnnotations)
  • du er typecasting din merknad til et sted på linje 3 (er dette riktig? Har Place underklasse MKAnnotationView?)
  • du er skikkelig sette bildet til merknaden

Hva dette betyr:

  • Hvis Place er faktisk en underklasse av MKAnnotationView, gjemte deg setImage (liksom) -metoden
  • Hvis stedet ikke er en underklasse av MKAnnotationView, har du lagt inn en ugyldig merknad til merknadene (sikker) at du prøver å behandle som en merknad.
Svarte 29/10/2009 kl. 13:05
kilden bruker

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