- (CLLocationDistance)getDistanceFrom:(const CLLocation *)location
我看到了,我開始變得NaN的在陌生的地方在飛行中的iPhone應用程序,計算兩套座標點之間的距離,從而對此事進行調查起來關閉,具有以下硬編碼值。
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函數的範圍內。
解決方案:
OK,這似乎是一個模擬器的bug。相同的代碼構建在設備上運行得非常好。案件解決。
似乎並不像你做錯了什麼,也許它的發生,因爲這兩個座標是一樣的嗎?當你把不同的座標放在一起時會發生嗎? – Daniel 2009-07-23 13:54:40
這只是一個巧合,這兩個位置具有相同的緯度/經度值。沒關係。我放入的任何東西都會不時產生相同的NaN結果。 這個東西是從一個UITableView被調用,應該返回一個距離,然後將被用來填充一個自定義的UITableVIewCell ... – Kaspa 2009-07-23 14:34:59