Pourquoi essayez - vous de modifier le cadre? Vous devriez être en train de définir itemIDcomme une variable de propriété ou de l' instance (ou les deux) myAnnotation.h. Vous dites que currentAnnotation.itemTag
ne fonctionne pas; pour cela fonctionne, vous devez avoir itemTagdéfini comme une propriété de quelque classe currentAnnotationappartient.
Modification du fichier d'en-tête pour le cadre ne sera pas recompiler, donc vous ne serez pas en mesure d'obtenir que pour travailler.
EDIT: Voici un exemple.
dans MyAnnotation.h:
@interface MyAnnotation : NSObject <MKAnnotation> {
NSString *itemID;
// Other instance variables
}
@property (nonatomic, retain) NSString *itemID;
// Class and instance methods.
@end
dans MyAnnotation.m:
@implementation MyAnnotation
@synthesize itemID;
// Your code here.
@end
L' @propertyappel définit la propriété et l' @synthesizeappel va créer setters et getters pour vous ( les méthodes pour définir et récupérer la valeur itemID). Dans MyAnnotation.m, vous pouvez utiliser self.itemIDou [self itemID]pour obtenir la valeur de itemID, et vous pouvez utiliser self.itemID = @"something"ou [self setItemID:@"Something"]pour définir la valeur.
EDIT 2:
Lorsque vous obtenez currentAnnotation, si le compilateur ne sait pas que l'annotation est une instance de votre classe MyAnnotation, il ne sera pas savoir itemID. Donc, d' abord vous assurer que vous avez inclus cette ligne au début de votre .mfichier:
#import MyAnnotation.h
Moul veiller à ce que le compilateur connaît la classe. Lorsque vous utilisez currentAnnotation, vous lancez comme une instance de MyAnnotationcomme ceci:
(MyAnnotation*)currentAnnotation
Cela devrait calmer les avertissements.