Редактирование и iPhone SDK Framework?

голоса
1

Я работаю с MapKit и хочу, чтобы иметь возможность добавить значение (NSString *) itemTag к каждому из моих аннотаций. Я создал myAnnotiation.m и myAnnotation.h

Я попытался добавить itemTag к myAnnotation.h / м, но когда я пытаюсь получить доступ к currentAnnotation.itemTag в моей основной код, он говорит, что «не Itemid найти в протоколах», - так что я пошел в MapKit.Framework и в MKAnnotation.h. Я добавил (NSString *) Itemid, но когда я сохранить файл .h в Framework, он изменяет значок файла и не кажется на стебаться со всем остальным.

Любая помощь или ссылки, чтобы помочь было бы весьма признателен. Я даже не уверен, если я нахожусь на правильном пути здесь, но погуглить «изменить рамки iphone СОК» не оказаться много.

Задан 23/03/2010 в 17:51
источник пользователем
На других языках...                            


1 ответов

голоса
4

Почему вы пытаетесь изменить структуру? Вы должны быть определяющим itemIDкак свойства или экземпляра переменной (или оба) в myAnnotation.h. Вы говорите , что currentAnnotation.itemTag не работает; для того , чтобы работать, вы должны быть itemTagопределены как свойство любого класс currentAnnotationпринадлежит.

Изменение заголовка файла для рамок не будет перекомпилировать его, так что вы не сможете получить, чтобы работать.

EDIT: Вот пример.

В MyAnnotation.h:

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

@property (nonatomic, retain) NSString *itemID;

// Class and instance methods.

@end

В MyAnnotation.m:

@implementation MyAnnotation

@synthesize itemID;

// Your code here.

@end

@propertyВызов определяет свойство и @synthesizeвызов будет создавать сеттер и добытчик для вас (методы для установки и извлечения значения itemID). В MyAnnotation.m, вы можете использовать self.itemIDили [self itemID]получить значение itemID, и вы можете использовать self.itemID = @"something"или [self setItemID:@"Something"]установить значение.

EDIT 2:

Когда вы получите currentAnnotation, если компилятор не знает , что аннотация является экземпляром вашего класса MyAnnotation, он не будет знать о itemID. Итак, сначала убедитесь , что вы включили эту строку в начале вашего .mфайла:

#import MyAnnotation.h

Это Виль гарантировать , что компилятор знает о классе. При использовании currentAnnotation, вы приводите его как пример MyAnnotationвот так:

(MyAnnotation*)currentAnnotation

Это должно успокоить вниз предупреждение.

Ответил 23/03/2010 в 18:14
источник пользователем

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