¿Por qué estás tratando de modificar el marco? Usted debe estar definiendo itemIDcomo una variable de la propiedad o instancia (o ambos) en myAnnotation.h. Usted dice que currentAnnotation.itemTag
no funcionó; Para que esto funcione, es necesario haber itemTagdefinido como una propiedad de cualquier clase currentAnnotationpertenece.
Cambiar el archivo de cabecera para el marco no va a volver a compilar, por lo que no será capaz de conseguir que funcione.
EDIT: He aquí un ejemplo.
en MyAnnotation.h:
@interface MyAnnotation : NSObject <MKAnnotation> {
NSString *itemID;
// Other instance variables
}
@property (nonatomic, retain) NSString *itemID;
// Class and instance methods.
@end
en MyAnnotation.m:
@implementation MyAnnotation
@synthesize itemID;
// Your code here.
@end
La @propertyllamada define la propiedad y la @synthesizellamada creará setters y getters para usted (métodos para establecer y recuperar el valor de itemID). En MyAnnotation.m, puede utilizar self.itemIDo [self itemID]para obtener el valor de itemID, y puede utilizar self.itemID = @"something"o [self setItemID:@"Something"]para ajustar el valor.
EDIT 2:
Al llegar currentAnnotation, si el compilador no sabe que la anotación es una instancia de la clase MyAnnotation, no va a saber sobre itemID. Por lo tanto, asegúrese primero de que ha incluido esta línea al principio de su .marchivo:
#import MyAnnotation.h
Wil que asegurarse de que el compilador sabe acerca de la clase. Cuando se utiliza currentAnnotation, lo lanzas como una instancia de MyAnnotationeste modo:
(MyAnnotation*)currentAnnotation
Eso debería acallar las advertencias.