所以,我在MKMapView上創建註釋引腳的位置時遇到了問題。註釋引腳
我只是寫了一個可從NSObject繼承的類,名爲「Annotation」,它使用協議。
所以,這裏的代碼:
Annotation.h
#import <Foundation/Foundation.h>
@interface Annotation : NSObject <MKAnnotation>
{
CLLocationCoordinate2D _coordinate;
NSUInteger _pinID;
}
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
- (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate andID:(NSUInteger)pinID;
@end
Annotation.m
#import "Annotation.h"
@implementation Annotation
@synthesize coordinate=_coordinate;
- (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate andID:(NSUInteger)pinID{
self = [super init];
if (self != nil) {
_coordinate = coordinate;
_pinID = pinID;
}
return self;
}
- (NSString *)title {
return [NSString stringWithFormat:@"Pin %u", _pinID];
}
- (NSString *)subtitle {
return [NSString stringWithFormat:@"%.4f, %.4f", _coordinate.latitude, _coordinate.longitude];
}
@end
於是,我試圖把它與foloowing代碼
連接到我的地圖MapViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
CLLocationCoordinate2D coordinate;
coordinate.latitude = 49.2802;
coordinate.longitude = -123.1182;
mapView.delegate = self;
mapView.region = MKCoordinateRegionMakeWithDistance(coordinate, 2000, 2000);
CLLocationCoordinate2D newCoord = {2000, 2000};
Annotation* annotation = [[Annotation alloc] initWithCoordinate:newCoord andID:1];
[mapView addAnnotation:annotation];
}
但是這個沒有任何意義,引腳沒有顯示。我究竟做錯了什麼? 我期待的幫助和教訓,但沒有工作結果。
註解仍然沒有工作...我想想也許有些選項需要被激活,因爲我沒有錯誤信息或者什麼 – user1496491
mapView是一個IBOutlet(它在xib中)?如果它是IBOutlet,請確保xib中的地圖視圖控件連接到文件所有者的插座。如果它沒有被添加到xib中,並且您打算以編程方式創建它,那麼在viewDidLoad中,您需要首先分配/初始化它,設置其框架並將其作爲子視圖添加到視圖控制器的視圖中。 – Anna