2010-01-16 129 views
3

我有一個內存泄漏,我不知道它來自哪裏以及如何解決它。iphone應用程序NSNumber內存泄漏

在某個點我計算2個位置之間的距離。

double calc = [self getDistance:location to:otherLocation]; 
NSNumber *distance = [NSNumber numberWithDouble:calc]; 

在儀器我得到的泄漏對象NSCFNumber並識別

NSNumber *distance = [NSNumber numberWithDouble:calc]; 

爲行導致此。

我不知所措。請幫忙。

在此先感謝, 米歇爾

+1

嘗試運行靜態分析器(Xcode> Build> Build and Analyze),看看它是否給了您比儀器更多的信息。 – gerry3 2010-01-16 21:09:23

回答

8

沒有什麼錯,你在做什麼有。 NSNumber有+0保留計數(自動釋放),所以你可能在其他地方保留NSNumber並忘記釋放它。

+0

你說得對。我曾是。 謝謝 – McDJ 2010-01-16 21:41:46

-1

我不相信你在NSNumber行有問題。

我已經運行下面的代碼和我有沒有問題

code>double calc = 10.1234567; 
    NSNumber *distance = [NSNumber numberWithDouble:calc]; 

    NSLog(@"calc: %f | %f", calc, [distance doubleValue]);

我相信,你的問題是在你的方法「getDistance的:到:」

確實喜歡我所做的。把一個靜態值,而不是方法,並檢查它是否正常。

乾杯,
VFN

3

泄漏您顯示正在泄漏的對象被創建。

如果你考慮一下,泄漏可能會告訴你 - 它泄漏了,因爲對象應該在某個時候被釋放,並且泄漏無法向你顯示不存在的代碼!