2012-01-26 94 views
1

關於如何計算CLLocationDistance(這與newLocation distanceFromLocation:oldLocation:超級簡單)有多個問題,但沒有人問過如何加總多個距離。CLLocationDistance Addition

如果我嘗試合計和總距離totalDistance + = newDistance我得到「無效的操作數到二進制表達式。我似乎無法添加一個類型double到我的強號。如何將CLLocationDistance轉換爲十進制或浮動

回答

2

事實證明什麼?我需要在總距離上保持一致轉換雙入一個NSNumber和回雙,像這樣:

numberThatIsSotred = [ NSNumber numberWithDouble:coordinate ]; 
theDobuleINeed = numberThatIsStored.doubleValue ; 
2

此代碼編譯爲我執行細:

CLLocationDistance total=0.0; 
    CLLocationDistance loc1 = [newLocation distanceFromLocation:oldLocation]; 
    CLLocationDistance loc2 = [oldLocation distanceFromLocation:newLocation]; 
    NSLog(@" loc1 = %f, loc2=%f", loc1, loc2); 

    total += loc1; 
    total += loc2; 

    NSLog(@" total=%f", total); 

什麼是你的代碼看起來像你是如何聲明你的「強勢」號

+0

這就是我的代碼看起來像爲好,這個問題肯定是我聲明瞭強烈的號碼一樣:@property(非原子,強)NSNumber * totalDistance; –

+0

'NSNumber'是一個對象類型,不響應正常的算術表達式。 CLLocationDistance可能只是float或double的typedef。您可以檢查NSNumber文檔以瞭解如何將原始數字類型轉換爲/從原始數字類型轉換。 – UIAdam

+0

CLLocationDistance確實是一個typedef double。我建議你聲明你的強變量是CLLocationDistance而不是NSNumber。如果你以後需要一個NSNumber,一旦你有了總數,你可以很容易地創建一個像這樣的:NSNumber * myNumber = [NSNumber numberWithDouble:_theTotalDistance]; – Rayfleck