Bei der Verwendung eines
NSDirectoryEnumerator
ist zu beachten, dass man innerhalb der while
-Schleife einen separaten autorelease-Pool (NSAutoreleasePool
) verwendet, da ein autoreleased String zurückgegeben wird.NSDirectoryEnumerator mit steigendem Speicherverbrauch
NSDirectoryEnumerator* direnum = [fileManager enumeratorAtPath:path];
NSString* entry;
while (entry = [direnum nextObject]) {
// ...
}
NSDirectoryEnumerator mit konstantem Speicherverbrauch
NSDirectoryEnumerator* direnum = [fileManager enumeratorAtPath:path];
NSAutoreleasePool *innerPool = [[NSAutoreleasePool alloc] init];
NSString* entry;
while (entry = [direnum nextObject]) {
// ...
[innerPool release];
innerPool = [[NSAutoreleasePool alloc] init];
}
innerPool = nil;