0

我在 mapView 中包含注释,但未显示。

地图随即出现,并以预期位置为中心。地图中心坐标与注释坐标相同。

欢迎任何帮助检测问题出在哪里。

#import "mapKitViewController.h"
#import "Annotation.h"

@interface mapKitViewController ()

@end

//AYUNTAMIENTO DE LAS PALMAS DE GC
#define LP_LATITUDE 28.1249625;
#define LP_LONGITUDE -15.4286931;
//span
#define THE_SPAN 0.01f;



@implementation mapKitViewController
@synthesize myMapView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.title = @"Localízame";    


    //DATOS DEL MAPA
    //region
    MKCoordinateRegion myRegion;

    //centro del mapa
    CLLocationCoordinate2D center;
    center.latitude = LP_LATITUDE;
    center.longitude = LP_LONGITUDE;

    //span
    MKCoordinateSpan span;
    span.latitudeDelta = THE_SPAN;
    span.longitudeDelta = THE_SPAN;

    myRegion.center = center;
    myRegion.span = span;

    [myMapView setRegion:myRegion animated:YES];

    //annotation
    CLLocationCoordinate2D ayuntamiento;
    ayuntamiento.latitude = LP_LATITUDE;
    ayuntamiento.longitude = LP_LONGITUDE;

    Annotation *aytoPin;
    aytoPin.coordinate = ayuntamiento;
    aytoPin.title = @"Ayuntamiento";
    aytoPin.subtitle = @"Las Palmas de Gran Canaria";
    [myMapView addAnnotation:aytoPin];
}
4

1 回答 1

2

我不知道 Annotation 是什么(而不是内置的 MKPointAnnotation 或类似的),但我认为它知道如何正确绘制自己。

那么问题来了:

Annotation *aytoPin;
aytoPin.coordinate = ayuntamiento;

您没有创建注释 ( alloc, init)。nil 也是如此aytoPin,什么都没有发生。这里没有对象。

(这种错误很容易被抓住,因为你后续的消息是指向 nil 的消息,这在 Objective-C 中不是错误。所以没有任何事情提醒你这个问题。)

于 2014-03-14T19:11:00.940 回答