0

Objective C で IOS をプログラミングするのは初めてなので、ご容赦ください。

基本的に、オブジェクトを渡した後、私の CLLocationCoordinate2D の値は自然に変化します。

まず、このメソッドはデータベースをシミュレートする必要があります

/* *
 * Static getMarkers
 * Returns an NSMutableArray of CustomMarkers
 * */
+ (NSMutableArray*) getMarkers
{
    NSMutableArray * markers = [[NSMutableArray alloc] init];


    CLLocationCoordinate2D projection = CLLocationCoordinate2DMake(50.850282, 4.351932);
    CustomMarker *m = [[CustomMarker alloc] initWithTEN:@"Brussels"
                                                TFR:@"Bruxelles Centre"
                                                TNL:@"Brussel Centrum"
                                           Position:&projection
                                           Filename:@"FILE.TXT"
                                         MarkerType:Verhaal];
    [markers addObject:m];

    return markers;
}

これらの行にブレークポイントを設定すると、すべてが完璧で正しいものになります。

次に、ビューコントローラーのループでマーカーを使用しようとすると、見苦しくなります。

// Load markers from datahelper
NSMutableArray * markers = [DataHelper getMarkers];


// Put the loaded markers on the map
for (CustomMarker *lm in markers) {

ここでは、datahelper からマーカーを受け取るとすぐに、位置が間違っています。

私が抱えている別の問題は、enum MarkerType が最初から nil であることです。

助けてくれてありがとう!

4

2 に答える 2

1

パラメータは(CLLocationCoordinate2D*)positionであってはなりません(CLLocationCoordinate2D)position。その後、ポインターの受け渡しを停止できます。

gmsm.position = *(lm.Position);あなたの問題は、またはの周りにある可能性が高くなります(*lm.Position).latitude, (*lm.Position).longitude。基本的に、場所の構造体へのポインターの使用を停止します。どこかで物事が混乱し、間違ったメモリの場所にアクセスしているためです (CustomMarkerインスタンスへの有効なポインターを逆参照しているように見えます)。

于 2013-10-29T13:31:05.000 に答える