Не удалось инициализировать CLLocationCoordinate2D iVar в MKAnnotation Classe - PullRequest
0 голосов
/ 22 октября 2011

Я пытаюсь поместить MKAnnotations в MKMapView. Я следую процедуре, которая была предложена в различных доступных уроках. Я создал файл PlaceMark.h / .m из класса NSobject следующим образом. PlaceMark.h

#import <Foundation/Foundation.h>
#import <MapKit/MKAnnotation.h>
@interface PlaceMark : NSObject<MKAnnotation>
{
CLLocationCoordinate2D coordinate;
NSString *title;
}
@property (nonatomic,copy) NSString *title;
@property (nonatomic,readonly) CLLocationCoordinate2D coordinate;
@end

PlaceMark.m

#import "PlaceMark.h"

@implementation PlaceMark
@synthesize coordinate,title;

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

@end

в моем viewController, который содержит MKMapView, в viewDidload у меня есть следующий код

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

MKCoordinateRegion region;
region.center.latitude=37.3305262;
region.center.longitude=-122.0290935;
region.span.latitudeDelta=0.01;
region.span.longitudeDelta=0.01;

[parkingMap setRegion:region animated:YES];

PlaceMark *ann=[[[PlaceMark alloc]init]autorelease]; // I have also tired it using explicitly defining method -(id)initwithTitle.... but it did not worked.

ann.title=@"Test";
ann.coordinate= region.center;
[parkingMap addAnnotation:ann];
}

Может кто-нибудь сказать, пожалуйста, что я делаю не так? Кстати, я использую Xcode4.2 с iOS SDK5.0 и Не использовать раскадровки / автоматический подсчет ссылок

Спасибо Sumit

1 Ответ

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

Вы определили свойство coordinate как readonly, поэтому вы не можете его установить.

Измените его на readwrite.

Кроме того, если вам просто нужен базовый объект аннотации с title, subtitle и настраиваемым coordinate, вы можете использовать встроенный класс MKPointAnnotation вместо определения своего собственного класса. Создание и инициализация будут идентичны (просто замените имя вашего класса на MKPointAnnotation).

...