2010-11-12 19 views
5

Salut à tous, J'essaie de faire fonctionner le MKMapView mais je n'arrive pas à dépasser ce qui semble être une erreur de référence. J'ai passé quelques heures à googler cela ainsi que la nuit dernière.MKMapKit et le IOS4

tête:

#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 

Erreur:

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 

j'ai réussi à trouver le MKMapKit.framework dans les dossiers appropriés. Est-ce que c'est quelque chose qui me manque?

Répondre

10

Vous semblez avoir besoin d'ajouter MapKit.framework à votre projet en faisant un clic droit sur votre liste de projets dans Xcode et en choisissant Ajouter-> Cadre existant. Choisissez MapKit, et vous devriez le voir sous la rubrique Cibles -> Votre application -> Lier les bibliothèques binaires.

+0

vous savez la chose triste est? Je pense que j'ai lu cette même réponse la nuit dernière après avoir été sous quelques bières sur un autre fil. Haha Merci mon pote. Je sais qu'il me manquait quelque chose de simple! – jbcurtin

+0

Merci, bosmacs! –

3

Ce que dit bosmacs est correct. Notez également que votre méthode dealloc est incorrecte.

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

Vous ne devez JAMAIS appeler dealloc sur autre chose que super, et [super dealloc]; va toujours à la fin de votre méthode dealloc.