Bearbeiten und iPhone SDK-Framework?

stimmen
1

Ich arbeite mit MapKit und möchte in der Lage, eine (NSString *) ItemTag Wert zu jedem meiner Anmerkungen hinzuzufügen. Ich habe myAnnotiation.m und myAnnotation.h erstellt

Ich habe versucht, ItemTag zum myAnnotation.h / m Hinzufügen aber wenn ich versuche currentAnnotation.itemTag in meinem Haupt-Code zugreifen, es heißt „Itemid nicht in den Protokollen gefunden“ - so ging ich in die MapKit.Framework und in MKAnnotation.h. Ich habe (NSString *) itemID, aber wenn ich die .h-Datei im Rahmen speichern, ändert sich das Symbol der Datei und erscheint nicht auf von anderen mit allem, was jiving.

Jede Hilfe oder Links wäre zu helfen, sehr geschätzt. Ich bin nicht einmal sicher, ob ich auf dem richtigen Weg bin hier, aber googeln „iphone sdk Rahmen ändern“ nicht wieder auftaucht viel.

Veröffentlicht am 23/03/2010 um 17:51
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
4

Warum versuchen Sie , den Rahmen zu ändern? Sie sollten definieren werden itemIDals eine Eigenschaft oder Instanzvariable (oder beides) in myAnnotation.h. Sie sagen , dass currentAnnotation.itemTag nicht funktioniert; dafür zu arbeiten, müssen Sie haben itemTagals eine Eigenschaft definiert , was auch immer Klasse currentAnnotationgehört.

die Header-Datei für den Rahmen ändern, wird es nicht neu kompiliert werden, so dass Sie die Lage sein, arbeiten nicht.

EDIT: Hier ist ein Beispiel.

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

Der @propertyAufruf definiert die Eigenschaft und der @synthesizeAnruf wird für Sie (Methoden zu setzen und den Wert abrufen Getter und Setter erstellen itemID). In MyAnnotation.mkönnen Sie verwenden self.itemIDoder [self itemID]den Wert zu erhalten itemID, und Sie können verwenden self.itemID = @"something"oder [self setItemID:@"Something"]den Wert einzustellen.

EDIT 2:

Wenn Sie erhalten currentAnnotation, wenn der Compiler nicht weiß , dass die Anmerkung eine Instanz Ihrer MyAnnotation Klasse ist, wird es nicht wissen itemID. Also, stellen Sie zuerst sicher , dass Sie diese Zeile am Anfang Ihrer aufgenommen haben .mDatei:

#import MyAnnotation.h

Das wil sorgen dafür , dass der Compiler über die Klasse kennt. Wenn Sie currentAnnotation, werfen Sie es als Instanz in MyAnnotationetwa so:

(MyAnnotation*)currentAnnotation

Das sollte die Warnungen beruhigen.

Beantwortet am 23/03/2010 um 18:14
quelle vom benutzer

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