Proč se snažíte změnit rámec? Ty by měly být definuje itemIDjako vlastnost nebo proměnné instance (nebo obojí) v myAnnotation.h. Říkáte, že currentAnnotation.itemTag
nefungovaly; za to fungovalo, musíte mít itemTagdefinován jako vlastnost jakéhokoliv třída currentAnnotationpatří.
Změna záhlaví souboru pro rámec nebude překompilovat ji, takže nebudete moci dostat, že se do práce.
EDIT: Tady je příklad.
v MyAnnotation.h:
@interface MyAnnotation : NSObject <MKAnnotation> {
NSString *itemID;
// Other instance variables
}
@property (nonatomic, retain) NSString *itemID;
// Class and instance methods.
@end
v MyAnnotation.m:
@implementation MyAnnotation
@synthesize itemID;
// Your code here.
@end
@propertyVolání definuje vlastnost a @synthesizevolání vytvoří setters a metody pro čtení pro vás (metody k nastavení a načtení hodnoty itemID). V roce MyAnnotation.m, můžete použít self.itemIDnebo [self itemID]k získání hodnoty itemID, a můžete použít self.itemID = @"something"nebo [self setItemID:@"Something"]nastavit hodnotu.
EDIT 2:
Když se dostanete currentAnnotation, pokud kompilátor neví, že anotace je instance vaší MyAnnotation třídy, nebude to vědět itemID. Takže, nejprve zkontrolujte, zda jste součástí tohoto řádku na začátek vašeho .msouboru:
#import MyAnnotation.h
Že Wil zajistit, že kompilátor ví o třídě. Použijete-li currentAnnotation, můžete jej obsazení jako příklad MyAnnotationtřeba takto:
(MyAnnotation*)currentAnnotation
To by mělo uklidnit varování.