Úprava a Framework iPhone SDK?

hlasů
1

Jsem pracující s MapKit a chtějí mít možnost přidat (NSString *) itemTag hodnotu ke každému z mých poznámek. Vytvořil jsem myAnnotiation.m a myAnnotation.h

Snažil jsem se přidat itemTag na myAnnotation.h / m, ale při pokusu o přístup currentAnnotation.itemTag v mé hlavní kód, říká, že „itemid nebyl nalezen v protokolech“ - tak jsem šel do MapKit.Framework a do MKAnnotation.h. Přidal jsem (NSString *) Itemid, ale když jsem uložit h souboru do rámce, změní na ikonu souboru a nezdá se, že by jiving se vším ostatním.

Jakákoli pomoc nebo odkazy pomoci by bylo velmi ocenil. Nejsem si ani jistý, jestli jsem na správné cestě sem, ale Googling „upravit rámec iPhone SDK“ není zase až moc.

Položena 23/03/2010 v 17:51
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
4

Proč se snažíte změnit rámec? Ty by měly být definuje itemIDjako vlastnost nebo proměnné instance (nebo obojí) v myAnnotation.h. Říkáte, že currentAnnotation.itemTag nefungovaly; za to fungovalo, musíte mít itemTagdefinován jako vlastnost jakéhokoliv třída currentAnnotationpatří.

Změna záhlaví souboru pro rámec nebude překompilovat ji, takže nebudete moci dostat, že se do práce.

EDIT: Tady je příklad.

v MyAnnotation.h:

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

@property (nonatomic, retain) NSString *itemID;

// Class and instance methods.

@end

v MyAnnotation.m:

@implementation MyAnnotation

@synthesize itemID;

// Your code here.

@end

@propertyVolání definuje vlastnost a @synthesizevolání vytvoří setters a metody pro čtení pro vás (metody k nastavení a načtení hodnoty itemID). V roce MyAnnotation.m, můžete použít self.itemIDnebo [self itemID]k získání hodnoty itemID, a můžete použít self.itemID = @"something"nebo [self setItemID:@"Something"]nastavit hodnotu.

EDIT 2:

Když se dostanete currentAnnotation, pokud kompilátor neví, že anotace je instance vaší MyAnnotation třídy, nebude to vědět itemID. Takže, nejprve zkontrolujte, zda jste součástí tohoto řádku na začátek vašeho .msouboru:

#import MyAnnotation.h

Že Wil zajistit, že kompilátor ví o třídě. Použijete-li currentAnnotation, můžete jej obsazení jako příklad MyAnnotationtřeba takto:

(MyAnnotation*)currentAnnotation

To by mělo uklidnit varování.

Odpovězeno 23/03/2010 v 18:14
zdroj uživatelem

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