0

私は(私にとって)謎のバグのようなものに出くわしました。iPhone SDK でユーザーの現在の場所を選択するコードがいくつかあります。iPhoneシミュレーターでは問題なく動作するのですが、実機で実行しようとすると変なエラーが出ます。

コードは次のとおりです (私は ASIFormDataRequest を使用して POST 要求を作成しています)。

ASIFormDataRequest * request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"testauthor" forKey:@"author"];
[request setPostValue:[[NSNumber numberWithDouble:datum.location.coordinate.latitude] stringValue] forKey:@"latitude"];
NSLog(@"%f", datum.location.coordinate.latitude);
NSLog(@"%f", datum.location.coordinate.longitude);
[request setPostValue:[[NSNumber numberWithDouble:datum.location.coordinate.longitude] stringValue] forKey:@"longitude"];
[request setPostValue:datum.comment forKey:@"comment"];

シミュレーターでは、NSLog は緯度と経度の両方を記録しますが、iPhone では記録しません。

さらに奇妙なことに、デバイスでデバッガーを使用すると、「po datum.location」を試してみると、

<+###, -###> +/- 223.10m (speed 0.00 mps / course -1.00) @ 2010-05-02 22:18:37 -0400

(### は私の場所に置き換えられます) しかし、「(gdb) po datum.location.coordinate」を実行すると、次のようになります。

There is no member named coordinate.

なぜこれが起こるのか分かりますか?よろしくお願いします。

4

1 に答える 1

1

poオブジェクトを出力し、aCLLocationCoordinate2Dはオブジェクトではないため、構造体です。

于 2010-05-03T03:06:19.117 に答える