iPhone Dev = карты и Deselecting аннотаций

голоса
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

Есть ли у Вас имущество на классе Место называется изображение?

Что - то вроде ... @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. }

Что я могу увидеть:

  • апп является MKAnnotationView (от map.selectedAnnotations)
  • вы типажи аннотации к месту на линии 3 (правильно ли это? Есть ли место подкласса MKAnnotationView?)
  • вы правильно настройки изображения в аннотации

Что это значит:

  • Если место действительно подкласс 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