Soy muy nuevo en el desarrollo de XCode y iPhone, así que por favor tengan paciencia si esta pregunta es demasiado simple. Pero tengo un mapa y he agregado imágenes (no pines) con éxito para mis anotaciones. Y puedo cambiar la imagen cuando el usuario selecciona una de las anotaciones.
Creé una clase que hereda de MKAnnotationView con los siguientes métodos:
- (id)initWithAnnotation:
- (void)setAnnotation:
- (void)drawRect:
y estoy usando
- (void)touchesBegan
saber cuándo se ha seleccionado una anotación Y en touchesBegan estoy haciendo:
UIImage *i = [UIImage imageNamed:@A.png];
self.image = i;
para cambiar la imagen Pero lo que realmente estoy perplejo es cómo puedo cambiar la imagen a su imagen original cuando los usuarios seleccionan la siguiente anotación. Yo he tratado:-
NSArray *selectedAnnotations = map.selectedAnnotations;
for(id annotationView in selectedAnnotations) {
[map deselectAnnotation:[annotationView annotation] animated:NO];
}
pero comete errores
y lo intenté
for (MKAnnotationView *ann in map.selectedAnnotations){
if ([ann isMemberOfClass:[Place class]])
{
place = (Place *)ann;
NSLog(@second = %@@ %f@ %f, place.title, place.longitude, place.latitude);
if (currentPlaceID == place.placeID) {
//UIImage *i = [UIImage imageNamed:@A.png];
//ann.image = i;
}
else {
UIImage *i = [UIImage imageNamed:@pin.png];
ann.image = i;
}
}
}
el código anterior funciona bien hasta que llegue a ann.image = i; entonces comete un error. Los errores que obtengo son:
*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370'
Sí, puedo ver que mi objeto de lugar no tiene una imagen, por eso está yendo mal. Pero si creo una propiedad de imagen en mi objeto de lugar, ¿cómo va a cambiar la imagen de las anotaciones lo que intento hacer?
Por favor, avisar ya que he estado dando vueltas en círculos en este durante 2 días.
Gracias de antemano Cheryl













