iPhone Dev = χάρτες και απενεργοποιώντας σχόλια

ψήφοι
0

Είμαι επιτυχώς την κατάρτιση σχολιασμούς στο χάρτη, χρησιμοποιώντας μια σειρά από σχόλια. Έχω ακόμα να κάνετε κλικ στην ένδειξη και να αλλάξετε το χρώμα του ή την εικόνα. Το πρόβλημά μου προκύπτει όταν η χρήση επιλέγει το δεύτερο σχολιασμό και θέλω να αλλάξει δυναμικά το χρώμα ή την εικόνα του πρώτου πίσω σε ένα μη επιλεγμένο χρώμα / εικόνα. Μπορώ να πάρω τη σειρά του όλους τους σχολιασμούς και λειτουργεί μέσω του πίνακα αλλά όταν προσπαθώ να ορίσετε το χρώμα ή την εικόνα ot τη σειρά μου να πάρει ένα παρόμοιο λάθος.

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

η παραπάνω κώδικα λειτουργεί εντάξει μέχρι να φτάσουμε στην ann.image = i? Στη συνέχεια λάθη. Τα σφάλματα παίρνω είναι: -

  • - [Τόπος setImage:]: μη αναγνωρισμένη επιλογέα αποστέλλονται σε περίπτωση 0x4514370 Τερματισμός εφαρμογών λόγω ασύλληπτος εξαίρεση «NSInvalidArgumentException», λόγο: «** - [Τόπος setImage:]: μη αναγνωρισμένη επιλογέα αποστέλλονται σε περίπτωση 0x4514370»

Παρακαλείστε να ενημερώσετε το έχω πάει γύρω στους κύκλους σε αυτό το σημείο για 2 μέρες τώρα !!!!

Οποιεσδήποτε ιδέες για το πώς καλύτερα να το κάνετε αυτό;

ευχαριστώ εκ των προτέρων

Δημοσιεύθηκε 29/10/2009 στις 13:58
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
0

Τελικά κατάλαβα πώς να το κάνουμε αυτό. Ως συνήθως δεν είναι ότι σκληρά μόλις ξέρετε πώς. Απλά σκέφτηκα ότι θα περάσει αυτό επάνω.

- (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");
    }
  }
Απαντήθηκε 29/10/2009 στις 20:23
πηγή χρήστη

ψήφοι
0

Έχετε ένα ακίνητο στην Place κατηγορία που ονομάζεται εικόνα;

Κάτι σαν ... @property (nonatomic, retain) UIImage* image;και σωστά συντίθεται; @synthesize image;;

Το σφάλμα είναι αρκετά απλή, κάποιο αντικείμενο λαμβάνει ένα μήνυμα ότι δεν ανταποκρίνεται σε αυτά, δηλαδή «setImage», το οποίο επικαλείται η .image.

Εδώ είναι ο κωδικός σας:

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

Τι μπορώ να δω:

  • ann είναι ένα MKAnnotationView (από map.selectedAnnotations)
  • που typecasting σχολιασμό σας σε μια θέση στη γραμμή 3 (έχει αυτό το δικαίωμα; Μήπως Τόπος υποκατηγορία MKAnnotationView;)
  • είστε σωστά τη ρύθμιση της εικόνας στο σχολιασμό

Τι σημαίνει αυτό:

  • Αν Place είναι πράγματι μια υποκατηγορία των MKAnnotationView, που έκρυψε τη μέθοδο setImage (κατά κάποιο τρόπο)
  • Αν το μέρος δεν είναι μια υποκατηγορία των MKAnnotationView, έχετε προσθέσει ένα μη έγκυρο σχολιασμό στις σημειώσεις (σίγουρα) που προσπαθείτε να αντιμετωπίσουμε ως ένα σχολιασμό.
Απαντήθηκε 29/10/2009 στις 14:05
πηγή χρήστη

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