Edición y Marco iPhone SDK?

votos
1

Estoy trabajando con MapKit y quiero ser capaz de añadir un valor (NSString *) itemTag a cada uno de mis anotaciones. He creado myAnnotiation.m y myAnnotation.h

He intentado añadir a la itemTag myAnnotation.h / m, pero cuando intento acceder a la currentAnnotation.itemTag dentro de mi código principal, que dice no ITEMID encontrado en los protocolos - así que fui a la MapKit.Framework y en MKAnnotation.h. He añadido (NSString *) ItemID, pero al guardar el archivo .h en el Marco, cambia el icono del archivo y no parece por jiving con todo lo demás.

Cualquier ayuda o enlaces para ayudar sería muy apreciada. Ni siquiera estoy seguro si estoy en el camino correcto aquí, pero buscando en Google modificar marco iPhone SDK no subir mucho.

Publicado el 23/03/2010 a las 17:51
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
4

¿Por qué estás tratando de modificar el marco? Usted debe estar definiendo itemIDcomo una variable de la propiedad o instancia (o ambos) en myAnnotation.h. Usted dice que currentAnnotation.itemTag no funcionó; Para que esto funcione, es necesario haber itemTagdefinido como una propiedad de cualquier clase currentAnnotationpertenece.

Cambiar el archivo de cabecera para el marco no va a volver a compilar, por lo que no será capaz de conseguir que funcione.

EDIT: He aquí un ejemplo.

en MyAnnotation.h:

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

@property (nonatomic, retain) NSString *itemID;

// Class and instance methods.

@end

en MyAnnotation.m:

@implementation MyAnnotation

@synthesize itemID;

// Your code here.

@end

La @propertyllamada define la propiedad y la @synthesizellamada creará setters y getters para usted (métodos para establecer y recuperar el valor de itemID). En MyAnnotation.m, puede utilizar self.itemIDo [self itemID]para obtener el valor de itemID, y puede utilizar self.itemID = @"something"o [self setItemID:@"Something"]para ajustar el valor.

EDIT 2:

Al llegar currentAnnotation, si el compilador no sabe que la anotación es una instancia de la clase MyAnnotation, no va a saber sobre itemID. Por lo tanto, asegúrese primero de que ha incluido esta línea al principio de su .marchivo:

#import MyAnnotation.h

Wil que asegurarse de que el compilador sabe acerca de la clase. Cuando se utiliza currentAnnotation, lo lanzas como una instancia de MyAnnotationeste modo:

(MyAnnotation*)currentAnnotation

Eso debería acallar las advertencias.

Respondida el 23/03/2010 a las 18:14
fuente por usuario

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