NSObject Background Thread & Memory Leaks
Ab Mac OS X 10.5 gibt es folgende NSObject Methode um einfach einen neuen Thread zu starten:
- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg
Wenn man nun einem eigenem Objekt diese Message schickt dann haut einem XCode ganz schnell Fehlermeldungen über Memory Leaks um die Ohren.
Der Grund ist ein fehlender Autorelease Pool der für den Main Thread automatisch angelegt wird aber nicht für unseren neuen Thread.
Dieser sollte also wie folgt in der zu startenden Methode angelegt und am Ende auch wieder released werden:
NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init]; ... [autoreleasepool drain];
[...] man einen NSAutoreleasePool erzeugt habe ich hier bereits einmal beschrieben: http://cgstudio.de/2009/04/20/nsobject-background-thread-memory-leaks/ [...]