Perché stai cercando di modificare il quadro? Si dovrebbe essere definisce itemIDcome una variabile di proprietà o un'istanza (o entrambi) in myAnnotation.h. Lei dice che currentAnnotation.itemTag
non ha funzionato; Per conseguire tale obiettivo, è necessario aver itemTagdefinito come una proprietà di qualsiasi classe currentAnnotationappartiene.
Modificare il file di intestazione per il quadro non sarà ricompilare, quindi non sarà in grado di ottenere che al lavoro.
EDIT: Ecco un esempio.
in MyAnnotation.h:
@interface MyAnnotation : NSObject <MKAnnotation> {
NSString *itemID;
// Other instance variables
}
@property (nonatomic, retain) NSString *itemID;
// Class and instance methods.
@end
in MyAnnotation.m:
@implementation MyAnnotation
@synthesize itemID;
// Your code here.
@end
La @propertychiamata definisce la proprietà e la @synthesizechiamata creerà setter e getter per voi (metodi per impostare e recuperare il valore di itemID). In MyAnnotation.m, è possibile utilizzare self.itemIDo [self itemID]per ottenere il valore di itemID, ed è possibile utilizzare self.itemID = @"something"o [self setItemID:@"Something"]per impostare il valore.
EDIT 2:
Quando si arriva currentAnnotation, se il compilatore non sa che l'annotazione è un'istanza della classe MyAnnotation, esso non sapere itemID. Quindi, in primo luogo garantire che hai inserito questa linea all'inizio del tuo .mfile di:
#import MyAnnotation.h
Questo wil assicurarsi che il compilatore conosce la classe. Quando si utilizza currentAnnotation, la lanci come un esempio di MyAnnotationquesto modo:
(MyAnnotation*)currentAnnotation
Questo dovrebbe calmarsi le avvertenze.