我遇到了一个神秘的错误(对我来说)。我有一些代码来挑选用户在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.
你们有没有想过为什么会这样?在此先感谢您的帮助!
答案 0 :(得分:1)
因为po
打印一个对象,而CLLocationCoordinate2D
不是一个对象,所以它是一个结构。