Waarom probeer je het raamwerk aan te passen? Je moet definiëren itemIDals een eigenschap of instantie variabele (of beide) in myAnnotation.h. U zegt dat currentAnnotation.itemTag
werkte niet; om dat te laten werken, moet je hebt itemTaggedefinieerd als een eigenschap van welke klasse currentAnnotationbehoort.
Het veranderen van de header-bestand voor de kader zal niet opnieuw te compileren, zodat u niet in staat zijn om dat te laten werken.
EDIT: Hier is een voorbeeld.
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
De @propertyoproep definieert het pand en het @synthesizegesprek wordt setters en getters voor u (methoden in te stellen en ophalen van de waarde van itemID). In MyAnnotation.mkunt u gebruik maken self.itemIDof [self itemID]om de waarde van te krijgen itemID, en u kunt gebruiken self.itemID = @"something"of [self setItemID:@"Something"]om de waarde in te stellen.
EDIT 2:
Wanneer je currentAnnotation, als de compiler niet weet dat de annotatie is een instantie van uw MyAnnotation klasse, zal het niet weten itemID. Dus, er eerst voor zorgen dat u deze lijn aan het begin van je hebt opgenomen .mfile:
#import MyAnnotation.h
Dat Wil ervoor te zorgen dat de compiler weet over de klas. Wanneer u currentAnnotation, u te werpen als een geval van MyAnnotationals volgt:
(MyAnnotation*)currentAnnotation
Dat moet rustig naar beneden de waarschuwingen.