1

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」の 1 つのピンだけが表示されます。配列の最新の要素のみを追加しているようです。

誰かが何が起こっているかを見ることができますか?ありがとう。

4

2 に答える 2

0

少しいじった後、次の行を配置すると機能することがわかりました。

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

外側ではなく、forループの内側に。まあ、生きて学びましょう。

于 2013-06-12T23:55:55.753 に答える