iPhone Dev = Kaarten en deselecteren annotaties

stemmen
0

Ik ben met succes tekenen aantekeningen op een kaart met een reeks van annotaties. Ik kan zelfs klik op de annotatie en verander het is kleur of afbeelding. Mijn probleem ontstaat wanneer de toepassing selecteert de tweede annotatie en wil om dynamisch de kleur of afbeelding van de eerste naar een kleur / het niet-geselecteerd. Ik kan de array van alle aantekeningen te krijgen en werken door middel van de reeks, maar zodra ik probeer om de kleur of afbeelding ot de array krijg ik een gelijkaardige fout.

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

de bovenstaande code werkt ok, totdat ik naar ann.image = i; Dan fouten. De fouten die ik krijg zijn: -

  • - [Plaats setImage:]: niet-herkende selector naar bijvoorbeeld 0x4514370 Terminating app te wijten aan onbekende uitzondering 'NSInvalidArgumentException', reden: '** - [Plaats setImage:]: niet-herkende selector naar bijvoorbeeld 0x4514370'

Gelieve te adviseren als ik ga al rond in cirkels op dit voor nu 2 dagen !!!!

Alle ideeën over de beste manier om dit te doen?

bij voorbaat dank

De vraag is gesteld op 29/10/2009 om 13:58
bron van user
In andere talen...                            


2 antwoorden

stemmen
0

Ik heb eindelijk bedacht hoe dit te doen. Zoals gewoonlijk is het niet zo moeilijk als je eenmaal weet hoe. Net dacht dat ik zou dit doorgeven.

- (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");
    }
  }
antwoordde op 29/10/2009 om 20:23
bron van user

stemmen
0

Heeft u een woning op de klas plaats genaamd afbeelding?

Iets dergelijks ... @property (nonatomic, retain) UIImage* image;en is het goed gesynthetiseerd? @synthesize image;?

De fout is vrij rechttoe rechtaan, een object is het ontvangen van een bericht dat het niet reageren op, namelijk 'setImage', die wordt aangevoerd door de .Image.

Hier is de 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. }

Wat ik kan zien:

  • ann een MKAnnotationView (van map.selectedAnnotations)
  • u typecasting uw annotatie naar een plaats op lijn 3 (is dit recht? Is Place subklasse MKAnnotationView?)
  • u goed wordt het instellen van het beeld om de annotatie

Wat dit betekent:

  • Als Place is inderdaad een subklasse van MKAnnotationView, u verborg de setImage (een of andere manier) methode
  • Als plaats is niet een subklasse van MKAnnotationView, hebt u een ongeldige annotatie om de annotaties (zeker) dat je probeert te behandelen als een aantekening toegevoegd.
antwoordde op 29/10/2009 om 14:05
bron van user

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