2010-11-12 9 views
5

Ciao a tutti, Sto provando a far funzionare il MKMapView, ma non riesco a superare quello che sembra essere un errore di riferimento. Ho passato alcune ore a cercarlo su google come anche la scorsa notte.MKMapKit e IOS4

Intestazione:

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

@interface MapsViewController : UIViewController { 
    MKMapView *mapView; 
} 

@end 

principale:

#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 

Errore:

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 

sono riuscito a trovare il MKMapKit.framework nelle cartelle appropriate. Sono qualcosa che mi manca?

risposta

10

Sembra che sia necessario aggiungere MapKit.framework al progetto facendo clic con il pulsante destro del mouse sull'elenco dei progetti in Xcode e scegliendo Aggiungi-> Framework esistente. Scegli MapKit, e dovresti vederlo elencato sotto Obiettivi -> La tua app -> Collega binario con le librerie.

+0

sai che la cosa triste è? Penso di aver letto quella risposta la scorsa notte dopo essere stata sotto alcune birre su un'altra discussione. Grazie, amico. So che mi mancava qualcosa di semplice! – jbcurtin

+0

Grazie, bosmacs! –

3

Ciò che il bosmac ha detto è corretto. Si noti inoltre che il metodo dealloc non è corretto.

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

Non dovresti MAI chiamare dealloc su qualsiasi cosa tranne super, e [super dealloc]; va sempre alla fine del tuo metodo dealloc.

Problemi correlati