可以从iPhone模拟器获取坐标,但无法从iPhone设备获取坐标

时间:2010-05-03 02:55:09

标签: iphone objective-c cllocationmanager

我遇到了一个神秘的错误(对我来说)。我有一些代码来挑选用户在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.

你们有没有想过为什么会这样?在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

因为po打印一个对象,而CLLocationCoordinate2D不是一个对象,所以它是一个结构。