Editarea și cadru pentru iPhone SDK?

voturi
1

Sunt de lucru cu MapKit și doresc să fie în măsură să adăugați o valoare (NSString *) itemTag la fiecare dintre adnotările mele. Am creat myAnnotiation.m și myAnnotation.h

Am încercat adăugarea itemTag la myAnnotation.h / m, dar când încerc să acceseze currentAnnotation.itemTag în codul meu principal, se spune „nu ITEMID găsit în protocoalele“ - asa ca m-am dus la MapKit.Framework și în MKAnnotation.h. Am adăugat (NSString *) ITEMID, dar când am salvați fișierul .h în cadru, se schimbă pictograma fișierului și nu pare să jiving de orice altceva.

Orice ajutor sau link-uri pentru a ajuta ar fi apreciat foarte mult. Nu sunt chiar sigur dacă eu sunt pe drumul cel bun aici, dar Googling „modificare cadru iPhone SDK“ nu se întoarce mult.

Întrebat 23/03/2010 la 17:51
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
4

De ce încerci să modifice cadrul? Ar trebui să fie definirea itemIDca o variabilă de proprietate sau de instanță (sau ambele) myAnnotation.h. Tu spui că currentAnnotation.itemTag nu a funcționat; pentru că la locul de muncă, trebuie să fi itemTagdefinit ca o proprietate de orice clasă currentAnnotationaparține.

Schimbarea fișierul antet pentru cadrul nu va recompila, așa că nu va fi capabil de a obține că la locul de muncă.

EDIT: Iată un exemplu.

În MyAnnotation.h:

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

@property (nonatomic, retain) NSString *itemID;

// Class and instance methods.

@end

În MyAnnotation.m:

@implementation MyAnnotation

@synthesize itemID;

// Your code here.

@end

@propertyApelul definește proprietatea și @synthesizeapelul va crea setteri și getteri pentru tine (metode pentru a seta și a prelua valoarea itemID). În MyAnnotation.m, puteți utiliza self.itemIDsau [self itemID]pentru a obține valoarea itemID, și puteți utiliza self.itemID = @"something"sau [self setItemID:@"Something"]pentru a seta valoarea.

EDIT 2:

Când ajungi currentAnnotation, dacă compilatorul nu știe că adnotarea este o instanta a clasei dvs. MyAnnotation, acesta nu va ști despre itemID. Deci, mai întâi asigurați - vă că ați inclus această linie la începutul tău .mfișier:

#import MyAnnotation.h

Aceasta wil asigura ca compilatorul stie despre clasa. Când utilizați currentAnnotation, ai aruncat ca un exemplu de MyAnnotationastfel:

(MyAnnotation*)currentAnnotation

Acest lucru ar trebui să tacă avertismente.

Publicat 23/03/2010 la 18:14
sursa de către utilizator

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