MKMapKit и IOS4 - PullRequest
       17

MKMapKit и IOS4

5 голосов
/ 12 ноября 2010

Привет всем, Я пытаюсь запустить MKMapView и запустить его, однако я не могу пройти мимо того, что кажется ошибкой ссылки. Я потратил несколько часов на поиски в Интернете, как и прошлой ночью.

Заголовок:

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

@interface MapsViewController : UIViewController {
    MKMapView *mapView;
}

@end

Main:

#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

Ошибка:

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

Мне удалось найти MKMapKit.framework в соответствующих папках. Они что-то пропускают?

Ответы [ 2 ]

10 голосов
/ 12 ноября 2010

Похоже, вам нужно добавить MapKit.framework в ваш проект, щелкнув правой кнопкой мыши по списку проектов в Xcode и выбрав Add-> Existing Framework. Выберите MapKit, и вы должны увидеть его в списке «Цели» -> «Ваше приложение» -> «Связать двоичные файлы с библиотеками».

3 голосов
/ 12 ноября 2010

То, что сказал босмач, правильно.Также обратите внимание, что ваш метод dealloc является неправильным.

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

Вы НИКОГДА не должны вызывать dealloc ни на чем, кроме super и super superlocвсегда идет в конце вашего метода dealloc.

...