0
NSMutableArray* annotations = [[NSMutableArray alloc] init];

//This is the details needed to make a new annotation.
CLLocationCoordinate2D autoCoord1;
autoCoord1.latitude = 37.78616;
autoCoord1.longitude = -122.41018;

MyAnnotation* autoAnnot1 = [[MyAnnotation alloc] init];

autoAnnot1.coordinate = autoCoord1;
autoAnnot1.title = @"auto";
autoAnnot1.subtitle = @"auto";

[mapViewVC addAnnotation:autoAnnot1];

[annotations addObject:autoAnnot1];

私の mapkit アプリの別の 1 つで動作するこのコードがありますが、autoAnnot1指定された座標でマップ上に表示される注釈を取得できないようです。

確かに、コード[mapViewVC addAnnotation:autoAnnot1];はその注釈をマップに追加する必要がありますか?

MyAnnotation.h クラスは次のようになります。

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

@interface MyAnnotation : NSObject <MKAnnotation> {

    CLLocationCoordinate2D coordinate;
    NSString*              title;
    NSString*              subtitle;
}

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

@end

以下は、ブレークポイントと出力を示す画像です

ここに画像の説明を入力

ここに画像の説明を入力

4

1 に答える 1

1

あなたが見せてくれたコードは、ViewControllerのイニシャライザーメソッドにあると思います。この時点では、ビューオブジェクトはまだインスタンス化されていません。あなたのアウトレットはすべてnilです。ビューを設定するコードはviewDidLoadメソッドに含める必要があります。このメソッドは、ビューが読み込まれ、アウトレットが接続された後に呼び出されます。

于 2012-09-04T16:11:16.817 に答える