Невозможно вызвать "MapAnnotation" при попытке закодировать расположение контактов - PullRequest
1 голос
/ 08 октября 2011

Я не могу вызвать класс "MapAnnotation" в XCode 4. Я работаю над кодированием, которое позволит мне размещать контакты в MKMapView. Я считаю, что я импортировал правильных делегатов. Вот что у меня есть:

MillersLocations.h

#import <Foundation/Foundation.h>
#import <MapKit/MKAnnotation.h>
#import <MapKit/MapKit.h>

@interface MillersLocations : NSObject <MKAnnotation> {
    CLLocationCoordinate2D coordinate;
    NSString *title;
    NSString *subtitle;
}

@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *subtitle;

@end

MillersLocations.m

#import "MillersLocations.h"

@implementation MillersLocations
@synthesize coordinate, title, subtitle;


-(void)dealloc{
    [title dealloc];
    [subtitle dealloc];
    [super dealloc];
}

@end

А вот мой контроллер вида для вида карты:

MapViewController.h

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

@interface MapViewController : UIViewController <MKMapViewDelegate> {
    IBOutlet MKMapView *mapView;

}

@end

MapViewController.m (только тот сегмент, на который я смотрю)

#import "MapViewController.h"
#import "MillersLocations.h"

@implementation MapViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {

    }
    return self;
}

//skipping forward

- (void)viewDidLoad
{
    [super viewDidLoad];

    MKCoordinateRegion store1;
    store1.center.latitude = 36.8605679;
    store1.center.longitude = -76.2866713;
    store1.span.latitudeDelta = 0.1;
    store1.span.longitudeDelta = 0.1;
    [mapView setRegion:store1 animated:YES];    

    //this is where I'm trying to put this code in:
    MapAnnotation* annotation = [[MapAnnotation alloc] initWithCoordinate:newCoord];
    //BUT "MapAnnotation" isn't an option
    }

Мне интересно, не импортировал ли я классы прав или что-то в этом роде. Я гуглил это и не могу найти, где лежит "MapAnnotation". Что мне нужно импортировать, чтобы получить доступ к «MapAnnotation»? До этого момента все работает отлично.

Спасибо за помощь. Я только учусь этому материалу!

1 Ответ

0 голосов
/ 08 октября 2011

Что заставляет вас думать, что есть класс под названием MapAnnotation?Ваш класс аннотаций называется MillersLocations.Вам нужно создать экземпляры этого класса и вызвать [mapView addAnnotation:millersLocationInstance]; (или что-то подобное).

...