【发布时间】:2009-07-23 11:28:15
【问题描述】:
我正在尝试使用动态计算 iPhone 应用程序中两组坐标点之间的距离
- (CLLocationDistance)getDistanceFrom:(const CLLocation *)location
我看到我开始在奇怪的地方得到 NaN,因此用以下硬编码值仔细调查了此事。
CLLocationDistance testDistance;
placeLocation = [[CLLocation alloc] initWithLatitude:12.236533 longitude:11.011419];
userLocation = [[CLLocation alloc] initWithLatitude:12.236533 longitude:11.011419];
testDistance = [userLocation getDistanceFrom:placeLocation];
if(isnan(testDistance))
NSLog(@"ISNaN!");
[placeLocation release];
[userLocation release];
上面被多次调用,在某些情况下 testDistance 是 NaN。
我担心我在这里遗漏了一些非常简单的东西。有人知道吗?
更新 1:
好的,所以我将上面的代码移到了一个新项目中(将所有内容放在应用程序委托中),循环了 100 次,一切都很好。因此,这表明问题与项目有关,但这几乎没有帮助......因为所有变量都在 1 个函数的范围内。
解决方案:
好的,这似乎是一个模拟器错误。相同的代码构建在设备上运行得非常好。案件已解决。
【问题讨论】:
-
似乎你做错了什么,也许是因为两个坐标相同?当你输入不同的坐标时会发生这种情况吗?
-
这两个位置具有相同的纬度/经度值只是巧合。没关系。我输入的任何内容都会不时产生相同的 NaN 结果。这个东西是从 UITableView 调用的,应该返回一个距离,然后将用于填充自定义 UITableVIewCell ...
标签: iphone