una semana que puede para niños minuto los estiramientos estatura enfermedad ejercicios deja crecer como xcode ios4 mkmapview mkannotation mkannotationview

xcode - semana - Tengo 30 anotaciones y estoy creciendo. ¿Busca una forma más simple de codificar esto?



estiramientos para crecer en una semana (2)

Estoy codificando varias anotaciones en un proyecto. Actualmente tengo 30 anotaciones y estoy creciendo. Me pregunto si existe una manera más simple de tener que crear una anotación.h y clases de anotación.m para cada anotación.

Actualmente, en mi controlador de vista de mapa, creo los objetos de anotación y los coloco en una matriz, lo cual me ha funcionado bien pero, como se podría imaginar, es mucho el código que debe administrar una vez que tiene toneladas de anotaciones, sin mencionar las toneladas de clases

Entonces, por ejemplo, una de las clases de anotación se ve así:

Anotación.h:

//Annotation.h #import <Foundation/Foundation.h> #import <MapKit/MapKit.h> @interface Annotation : NSObject { } @end

Annotation.m:

//Annotation.m #import "Annotation.h" @implementation Annotation -(CLLocationCoordinate2D)coordinate; { CLLocationCoordinate2D theCoordinate; theCoordinate.latitude = -45.866416; theCoordinate.longitude = 170.519931; return theCoordinate; } -(NSString *)title { return @"Title"; } -(NSString *)subtitle { return @"Subtitle"; } -(void)dealloc { [super dealloc]; } @end

Estoy pensando en leer en un archivo CSV, con todas las anotaciones sería la mejor manera de hacerlo, cualquier opción que elija me hará reescribir una gran cantidad de código, por lo que estoy haciendo esta pregunta antes de hacer nada. ¿Alguien tiene alguna sugerencia?


Desafortunadamente, la aplicación de muestra MapCallouts no proporciona un buen ejemplo de cómo implementar una clase de anotación genérica.

Su clase que implementa el protocolo MKAnnotation puede proporcionar una propiedad de coordinate configurable o un método de inicio personalizado que tome las coordenadas.

Sin embargo, dado que está utilizando iOS 4.0, una opción más fácil es simplemente usar la clase MKPointAnnotation predefinida que proporciona propiedades que puede establecer. Por ejemplo:

MKPointAnnotation *annot = [[MKPointAnnotation alloc] init]; annot.title = @"Title"; annot.subtitle = @"Subtitle"; annot.coordinate = CLLocationCoordinate2DMake(-45.866416, 170.519931); [mapView addAnnotation:annot]; [annot release];

Los datos de la anotación, por supuesto, pueden provenir de cualquier lugar y puede recorrer los datos para crear las anotaciones en el mapa.


¿Tal vez crear una variedad de elementos de diccionario de anotaciones (lat, lon, título, subtítulo) y almacenar en un plist?

¿O tal vez usar el marco de datos básicos y almacenar los elementos en un sqlite db?

Tal vez este enlace también ayudará? Mostrar un número limitado de anotaciones ordenadas en Mapview