NSObject Background Thread & Memory Leaks

Posted by admin | Objective-C | Monday 20 April 2009 01:27

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];
Share/Save/Bookmark

1 Comment »

  1. Pingback by Memory Management mal wieder | CGstudio — 24.April.2009 @ 20:47

    [...] man einen NSAutoreleasePool erzeugt habe ich hier bereits einmal beschrieben: http://cgstudio.de/2009/04/20/nsobject-background-thread-memory-leaks/ [...]

RSS feed for comments on this post. TrackBack URI

Leave a comment