1

在我的应用程序出现问题后,我为 a 编写了一个测试应用MKMapView程序。我的问题是我不能在地图上放置多个图钉。在方法中使用此代码,viewDidLoad:应在指定坐标的对角线上显示 10 个引脚:

Annotation *annotation = [[Annotation alloc] init];
NSMutableArray *array = [[NSMutableArray alloc] init];
for (int i = 0; i < 10; i++) {
    annotation.title = [NSString stringWithFormat:@"Pin%i", i];
    annotation.subtitle = [NSString stringWithFormat:@"%i", i];
    annotation.coordinate = CLLocationCoordinate2DMake(37.41181 + (i * .1), -122.11809 + (i * .1));
    [array addObject:annotation];
}
[map addAnnotations:array];

Annotation只是:

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

@interface Annotation : NSObject <MKAnnotation>

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

-(id)init;

@end


@implementation Annotation
@synthesize title, subtitle, coordinate;

-(id)init {
    self = [super init];
    return self;
}

@end

而不是看到 10 个图钉,我只看到我的“当前位置”和一个很远的图钉,其标题和副标题为“Pin9”和“9”。似乎它只添加了数组中的最新元素。

有人能看到发生了什么吗?谢谢。

4

2 回答 2

1

注解必须在 for 循环中分配。

注解 *annotation = [[注解分配] init];

于 2013-06-13T05:45:08.480 回答
0

在摆弄了一下之后,我发现如果你把线放在上面,它就可以工作:

Annotation *annotation = [[Annotation alloc] init];

for循环内部,而不是外部。哦,生活和学习。

于 2013-06-12T23:55:55.753 回答