Redigering og iPhone SDK Work?

stemmer
1

Jeg jobber med MapKit og ønsker å være i stand til å legge en (NSString *) itemTag verdi til hver av mine merknader. Jeg har laget myAnnotiation.m og myAnnotation.h

Jeg prøvde å legge itemTag til myAnnotation.h / m, men når jeg prøver å få tilgang currentAnnotation.itemTag innenfor mitt viktigste koden, står det ITEMID ikke funnet i protokoller - så jeg gikk til MapKit.Framework og inn MKAnnotation.h. Jeg har lagt (NSString *) Itemid, men når jeg lagrer .h fil i ramme, endrer det filens ikon og ser ikke ut til ved jiving med alt annet.

Hjelp eller linker til å hjelpe ville være verdsatt. Jeg er ikke engang sikker på om jeg er på rett vei her, men Googling modifisere iPhone SDK rammeverk ikke skru opp mye.

Publisert på 23/03/2010 klokken 16:51
kilden bruker
På andre språk...                            


1 svar

stemmer
4

Hvorfor er du prøver å endre rammeverket? Man bør definere itemIDsom en egenskap eller forekomst variabel (eller begge deler) myAnnotation.h. Du sier at currentAnnotation.itemTag fungerte ikke; for at det skal fungere, må du ha itemTagdefinert som en egenskap av hva klassen currentAnnotationtilhører.

Endre topptekstfilen for rammen vil ikke rekompilere det, så vil du ikke være i stand til å få det til å fungere.

EDIT: Her er et eksempel.

i MyAnnotation.h:

@interface MyAnnotation : NSObject <MKAnnotation> {
    NSString *itemID;
    // Other instance variables
}

@property (nonatomic, retain) NSString *itemID;

// Class and instance methods.

@end

i MyAnnotation.m:

@implementation MyAnnotation

@synthesize itemID;

// Your code here.

@end

Den @propertysamtalen definerer eiendommen og @synthesizesamtalen vil skape settere og getters for deg (metoder for å angi og hente verdien av itemID). I MyAnnotation.m, kan du bruke self.itemIDeller [self itemID]å få verdien av itemID, og du kan bruke self.itemID = @"something"eller [self setItemID:@"Something"]å sette verdien.

EDIT 2:

Når du kommer currentAnnotation, hvis kompilatoren ikke vet at merknaden er en forekomst av MyAnnotation klasse, det vil ikke vite om itemID. Så, først sørge for at du har tatt med denne linjen i begynnelsen av .mfilen:

#import MyAnnotation.h

Som wil sikre at kompilatoren vet om klassen. Når du bruker currentAnnotation, kastet du det som et eksempel på MyAnnotationslik:

(MyAnnotation*)currentAnnotation

Det burde stille ned advarslene.

Svarte 23/03/2010 kl. 17:14
kilden bruker

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