Обычно класс, соответствующий протоколу MKAnnotation
, не является контроллером представления, это класс данных.
Вам потребуется создать еще один класс, который я назову для примера «MyLandmarks».
@interface MyLandmarks : NSObject <MKAnnotation>
// Normally, there'd be some variables that contain the name and location.
// And maybe some means to populate them from a URL or a database.
// This example hard codes everything.
@end
@implementation MyLandmarks
-(NSString*)title {
return @"'ere I am, J.H.";
}
-(NSString*)subtitle {
return @"The ghost in the machine.";
}
-(CLLocationCoordinate2D) coordinate {
CLLocationCoordinate2D coord = {latitude: 19.120000, longitude: 73.020000};
return coord;
}
@end
Затем, где-нибудь в вашем MyMapView
классе, добавьте:
MyLandmark *landmark = [[[MyLandmark alloc]init]autorelease];
[Obj_Map_View addAnnotation:landmark];
Пара других моментов, которые оценят другие разработчики Objective-C, работающие с вами:
- Чтобы избежать путаницы, не называйте класс
MyMapView
, если он происходит от UIViewController
. Назовите это MyMapViewController
, вместо этого.
- Классы начинаются с заглавной буквы, переменные начинаются со строчной буквы. Оба в верблюжьей клетке.
Obj_Map_View
должно быть objMapView
.