Editing e Framework SDK iPhone?

voti
1

Sto lavorando con MapKit e voglio essere in grado di aggiungere un valore (NSString *) itemTag a ciascuno dei miei annotazioni. Ho creato myAnnotiation.m e myAnnotation.h

Ho provato ad aggiungere itemTag al myAnnotation.h / m, ma quando provo ad accedere currentAnnotation.itemTag nel mio codice principale, si dice non Itemid trovato nei protocolli - così sono andato al MapKit.Framework e in MKAnnotation.h. Ho aggiunto (NSString *) itemID, ma quando salvo il file .h nel quadro, si cambia l'icona del file e non sembra per jiving con tutto il resto.

Qualsiasi aiuto o link per aiutare sarebbe molto apprezzato. Io non sono nemmeno sicuro se sono sulla strada giusta qui, ma Googling modificare quadro iphone sdk non alzare più di tanto.

È pubblicato 23/03/2010 alle 17:51
fonte dall'utente
In altre lingue...                            


1 risposte

voti
4

Perché stai cercando di modificare il quadro? Si dovrebbe essere definisce itemIDcome una variabile di proprietà o un'istanza (o entrambi) in myAnnotation.h. Lei dice che currentAnnotation.itemTag non ha funzionato; Per conseguire tale obiettivo, è necessario aver itemTagdefinito come una proprietà di qualsiasi classe currentAnnotationappartiene.

Modificare il file di intestazione per il quadro non sarà ricompilare, quindi non sarà in grado di ottenere che al lavoro.

EDIT: Ecco un esempio.

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

La @propertychiamata definisce la proprietà e la @synthesizechiamata creerà setter e getter per voi (metodi per impostare e recuperare il valore di itemID). In MyAnnotation.m, è possibile utilizzare self.itemIDo [self itemID]per ottenere il valore di itemID, ed è possibile utilizzare self.itemID = @"something"o [self setItemID:@"Something"]per impostare il valore.

EDIT 2:

Quando si arriva currentAnnotation, se il compilatore non sa che l'annotazione è un'istanza della classe MyAnnotation, esso non sapere itemID. Quindi, in primo luogo garantire che hai inserito questa linea all'inizio del tuo .mfile di:

#import MyAnnotation.h

Questo wil assicurarsi che il compilatore conosce la classe. Quando si utilizza currentAnnotation, la lanci come un esempio di MyAnnotationquesto modo:

(MyAnnotation*)currentAnnotation

Questo dovrebbe calmarsi le avvertenze.

Risposto il 23/03/2010 a 18:14
fonte dall'utente

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