我正在尝试将MKAnnotations放在MKMapView上。我正在遵循各种可用教程中建议的过程。我已经从NSobject类创建了PlaceMark.h / .m文件,如下所示。 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];
}
有谁能告诉我我做错了什么? BTW我正在使用Xcode4.2与iOS sdk5.0和 不使用故事板/自动引用计数
由于 萨米特
答案 0 :(得分:0)
您已将coordinate
属性定义为readonly
,因此无法进行设置。
将其更改为readwrite
。
此外,如果您只需要一个带有title
,subtitle
和可设置coordinate
的基本注释对象,则可以使用内置的MKPointAnnotation
类而不是定义自己的类。创建和初始化将完全相同(只需将您的类名替换为MKPointAnnotation
)。