PDA

View Full Version : Multiple Windows and Memory Leakage




BadWolf13
Nov 18, 2010, 09:44 PM
I've got an app with multiple windows that will often be opened for some time and then closed. So watching the memory usage of these windows and the window controllers is important to me. Here's the catch. I put an NSLog statement in the dealloc, which doesn't ever get printed in the console. I assumed that this meant that my window and window controller weren't being deallocated.

On the other hand, I just use the Leak Instrument on the app today. When I opened the second window, it shows 1 instance of my NSWindowController subclass, and when I close that window, it shows 0 instances of my NSWindowController subclass, and that no memory is being used by this class.

Don't these two observations contradict each other?



kainjow
Nov 18, 2010, 11:38 PM
My guess is you're either reading Leaks wrong, or you have Garbage Collection enabled where finalize is called instead of dealloc.

BadWolf13
Nov 19, 2010, 12:35 PM
I'm using garbage collection. I just didn't realize that it called something else instead of dealloc. Should I override finalize to make sure that it releases its internal objects?

Comrade Yeti
Nov 19, 2010, 01:45 PM
No. Reread the garbage collection documents. The point of finalize is NOT to duplicate the dealloc method. You should only clean up NON GC'd resources in the finalize method as a last resort. Even then, finalize is not necessarily guaranteed to be called.

Sydde
Nov 19, 2010, 01:53 PM
Does the Leak Instrument even do anything under GC?