我正在将多个注释编码到项目中。目前我有30个注释,并且还在增长。我想知道是否有一种简单的方法来为每个单独的注释创建一个annotation.h和annotation.m类。
目前在我的地图视图控制器中,我创建了注释对象并将它们放在一个数组中,这对我来说效果很好但是你可以想象,一旦你有大量的注释,它就需要管理很多代码,而不是提到很多课程。
例如,其中一个注释类看起来像这样:
Annotation.h:
//Annotation.h
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
@interface Annotation : NSObject {
}
@end
Annotation.m:
//Annotation.m
#import "Annotation.h"
@implementation Annotation
-(CLLocationCoordinate2D)coordinate;
{
CLLocationCoordinate2D theCoordinate;
theCoordinate.latitude = -45.866416;
theCoordinate.longitude = 170.519931;
return theCoordinate;
}
-(NSString *)title
{
return @"Title";
}
-(NSString *)subtitle
{
return @"Subtitle";
}
-(void)dealloc
{
[super dealloc];
}
@end
我正在考虑阅读一个CSV文件,其中所有注释都是最好的方法,我选择的任何选项都会导致我重写很多代码,这就是我之前问这个问题的原因做任何事情。有没有人有任何建议?
答案 0 :(得分:3)
遗憾的是,MapCallouts示例应用程序没有提供如何实现通用注释类的好例子。
实现MKAnnotation
协议的类可以提供可设置的coordinate
属性或采用坐标的自定义init方法。
但是,由于您使用的是iOS 4.0,因此更简单的选择是使用预定义的MKPointAnnotation
类,该类提供您可以设置的属性。例如:
MKPointAnnotation *annot = [[MKPointAnnotation alloc] init];
annot.title = @"Title";
annot.subtitle = @"Subtitle";
annot.coordinate = CLLocationCoordinate2DMake(-45.866416, 170.519931);
[mapView addAnnotation:annot];
[annot release];
注释数据当然可以来自任何地方,您可以遍历数据以在地图上创建注释。
答案 1 :(得分:2)
也许创建一个注释的字典项数组(lat,lon,title,subtitle)并存储在plist中?
或者可以使用核心数据框架并将项目存储在sqlite db中?
也许这个链接也有帮助? Display a limited number of sorted annotations in Mapview