2010-11-12 15 views
5

Hey all, Tôi đang cố gắng để có được MKMapView và chạy tuy nhiên tôi dường như không thể vượt qua những gì có vẻ là một lỗi tham chiếu. Tôi đã dành một vài giờ googling này cũng như đêm qua.MKMapKit và IOS4

Tiêu đề:

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

@interface MapsViewController : UIViewController { 
    MKMapView *mapView; 
} 

@end 

chính:

#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 

Lỗi:

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 

tôi quản lý để tìm ra MKMapKit.framework trong các thư mục thích hợp. Có bất cứ điều gì tôi đang thiếu?

Trả lời

10

Có vẻ như bạn cần thêm MapKit.framework vào dự án của mình bằng cách nhấp chuột phải vào danh sách dự án của bạn trong Xcode và chọn Thêm-> Khung hiện có. Chọn MapKit, và bạn sẽ thấy nó được liệt kê dưới mục tiêu -> Ứng dụng của bạn -> Liên kết nhị phân với thư viện.

+0

bạn biết điều đáng buồn là gì không? Tôi nghĩ tôi đã đọc câu trả lời đó tối qua sau khi uống dưới một vài loại bia trên một sợi chỉ khác. Haha Cảm ơn bạn đời. Tôi biết tôi đã thiếu một cái gì đó đơn giản! – jbcurtin

+0

Cảm ơn bạn, bosmacs! –

3

Những gì bosmac đã nói là chính xác. Cũng lưu ý rằng phương thức dealloc của bạn không chính xác.

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

Bạn KHÔNG BAO GIỜ nên gọi dealloc về bất kỳ thứ gì ngoài siêu và [super dealloc]; luôn đi vào cuối phương thức dealloc của bạn.

Các vấn đề liên quan