Redactie en iPhone SDK Framework?

stemmen
1

Ik werk met MapKit en willen in staat zijn om een ​​(NSString *) itemTag waarde toe te voegen aan elk van mijn aantekeningen. Ik heb myAnnotiation.m en myAnnotation.h gecreëerd

Ik probeerde het toevoegen van itemTag aan de myAnnotation.h / m maar wanneer ik probeer om tot currentAnnotation.itemTag binnen mijn belangrijkste code, het zegt ItemID niet gevonden in protocollen - dus ging ik naar de MapKit.Framework en in MKAnnotation.h. Ik voegde (NSString *) ItemID, maar toen ik de h-bestand op te slaan in het Raamwerk, verandert het pictogram van het bestand en lijkt niet door jiving met al het andere.

Alle hulp of links naar hulp zou zeer gewaardeerd worden. Ik ben niet eens zeker of ik ben op de goede weg hier, maar Googlen wijzigen iphone sdk kader niet veel opdagen.

De vraag is gesteld op 23/03/2010 om 17:51
bron van user
In andere talen...                            


1 antwoorden

stemmen
4

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.

antwoordde op 23/03/2010 om 18:14
bron van user

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