iPhone应用程序NSNumber内存泄漏

时间:2010-01-16 19:17:48

标签: iphone objective-c memory-management memory-leaks

我有内存泄漏,我不知道它来自何处以及如何修复它。

在某些时候,我计算了两个位置之间的距离。

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

在仪器中我得到泄漏对象NSCFNumber并识别

NSNumber *distance = [NSNumber numberWithDouble:calc];

作为导致此问题的一行。

我很茫然。请帮忙。

提前谢谢, 米希尔

3 个答案:

答案 0 :(得分:8)

你在那里做的事情没有错。 NSNumber有+0保留计数(自动释放),因此您可能会在其他地方保留NSNumber并忘记释放它。

答案 1 :(得分:3)

Leaks显示泄漏的对象在哪里创建。

如果你仔细想想,Leaks可以向你展示其他任何东西 - 它正在泄漏,因为该对象应该在某个时候被释放,而Leaks无法向你显示不存在的代码!

答案 2 :(得分:-1)

我不相信你在NSNumber线上有问题。

我运行了以下代码,我没有遇到任何问题

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

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

我相信你的问题在于你的方法“getDistance:to:”

就像我做的那样。放一个静态值,而不是方法,检查是否正常。

干杯,
VFN