views:

142

answers:

3

Hi,

I'm having a memory leak and I have no clue where it comes from and how to fix it.

At some point i calculate the distance between 2 locations.

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

in instruments i get as leaked object NSCFNumber and it identifies

NSNumber *distance = [NSNumber numberWithDouble:calc];

as the line causing this.

I'm at a loss. Please help.

thanks in advance, Michiel

+6  A: 

There's nothing wrong with what you're doing there. The NSNumber has a +0 retain count (autoreleased), so you're probably retaining that NSNumber somewhere else and forgetting to release it.

Dave DeLong
You're right. I was.Thanks
Michiel
A: 

Hey Michiel,

I don't believe that you have problem on the NSNumber line.

I have run the following code and I've got no problems

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

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

I believe that your problem is in your method "getDistance: to:"

Do like I have done. put a static value, instead of the method and check if it is ok.

Cheers,
VFN

vfn
+3  A: 

Leaks shows you where an object that is leaking is CREATED.

If you think about it, there's really nothing else Leaks can show you - it's leaking because the object should have been released at some point, and Leaks can't show you code that does not exist!

Kendall Helmstetter Gelner