Édition et cadre SDK iPhone?

voix
1

Je travaille avec MapKit et que vous souhaitez être en mesure d'ajouter un (NSString *) Valeur itemtag à chacun de mes annotations. J'ai créé myAnnotiation.m et myAnnotation.h

J'ai essayé d'ajouter à la itemtag myAnnotation.h / m mais quand je tente d'accéder currentAnnotation.itemTag dans mon code principal, il est dit « Itemid pas trouvé dans les protocoles » - alors je suis allé à la MapKit.Framework et en MKAnnotation.h. J'ai ajouté (NSString *) itemId mais quand j'enregistrez le fichier .h dans le cadre, il change l'icône du fichier et ne semble pas par jiving avec tout le reste.

Toute aide ou des liens pour aider seraient grandement appréciés. Je ne suis même pas sûr si je suis sur le bon chemin, mais googler « modifier cadre iphone sdk » ne tourne pas beaucoup.

Créé 23/03/2010 à 17:51
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
4

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.

Créé 23/03/2010 à 18:14
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more