2010-11-12 13 views
5

Hola a todos, Estoy tratando de poner en marcha el MKMapView, pero parece que no puedo pasar de lo que parece ser un error de referencia. He pasado algunas horas buscando en Google esto así como anoche.MKMapKit y el IOS4

Cabecera:

#import <UIKit/UIKit.h> 
#import <MapKit/MapKit.h> 

@interface MapsViewController : UIViewController { 
    MKMapView *mapView; 
} 

@end 

principal:

#import "MapsViewController.h" 

@implementation MapsViewController 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    mapView = [[MKMapView alloc] initWithFrame:self.view.frame]; 
    [self.view insertSubview:mapView atIndex:0]; 
} 

- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 
- (void)dealloc { 
    [super dealloc]; 
    [mapView dealloc]; 
} 

@end 

error:

Build Maps of project Maps with configuration Debug 

Ld build/Debug-iphonesimulator/Maps.app/Maps normal i386 
cd /workspace/iphone_dev/Maps 
setenv MACOSX_DEPLOYMENT_TARGET 10.6 
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk -L/workspace/iphone_dev/Maps/build/Debug-iphonesimulator -F/workspace/iphone_dev/Maps/build/Debug-iphonesimulator -filelist /workspace/iphone_dev/Maps/build/Maps.build/Debug-iphonesimulator/Maps.build/Objects-normal/i386/Maps.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -framework Foundation -framework UIKit -framework CoreGraphics -o /workspace/iphone_dev/Maps/build/Debug-iphonesimulator/Maps.app/Maps 

Undefined symbols: 
    "_OBJC_CLASS_$_MKMapView", referenced from: 
     objc-class-ref-to-MKMapView in MapsViewController.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

he conseguido encontrar la MKMapKit.framework en las carpetas correspondientes. ¿Es algo que me estoy perdiendo?

Respuesta

10

Parece que necesita agregar MapKit.framework a su proyecto haciendo clic derecho en su lista de proyectos en Xcode y seleccionando Agregar-> Marco existente. Elija MapKit, y debería verlo listado en Destinos -> Su aplicación -> Enlace binario con bibliotecas.

+0

¿sabes lo triste que es? Creo que leí esa misma respuesta anoche después de estar debajo de algunas cervezas en otro hilo. Jaja Gracias amigo. ¡Sé que me estaba perdiendo algo simple! – jbcurtin

+0

¡Gracias, bosmacs! –

3

Lo que dijo Bosmacs es correcto. También tenga en cuenta que su método dealloc es incorrecto.

- (void)dealloc { 
    [mapView release]; 
    [super dealloc]; 
} 

NUNCA debe llamar a dealloc en cualquier cosa que no sea súper, y [super dealloc]; siempre va al final de su método dealloc.

Cuestiones relacionadas