NSFileManager утечки - PullRequest
       5

NSFileManager утечки

1 голос
/ 20 июня 2011

Я обнаружил утечки памяти в следующем фрагменте кода, который я написал

NSFileManager *fileManager=[[NSFileManager alloc] init];
fileList=[[fileManager contentsOfDirectoryAtPath:DOCUMENTS_FOLDER error:nil] retain];
[fileManager release];  

Информация об утечках -

[NSFileManager contentsOfDirectoryAtPath:error:]
[NSFileManager directoryContentsAtPath:matchingExtension:options:keepExtension:error]
CFStringCreateWithBytes
_CFStringCreateImmutableFunnel3
_CFRuntimeCreateInstance.

И я не знаю, как ее решить?

Ответы [ 2 ]

4 голосов
/ 20 июня 2011

Ваш файл alloc-then-release файлового менеджера в порядке. Но

fileList=[[fileManager contentsOfDirectoryAtPath:DOCUMENTS_FOLDER error:nil] retain];

Теперь у вас есть массив, который сохраняется. Вы должны выпустить это позже. Если вы этого не сделаете, у вас будет утечка.

2 голосов
/ 20 июня 2011

Эмпирическое правило для управления памятью простое:

Для каждого alloc, retain, copy или new у вас должно быть соответствующее release или autorelease,

Вы звоните, удерживайте здесь:

fileList=[[fileManager contentsOfDirectoryAtPath:DOCUMENTS_FOLDER error:nil] retain];

, но вы не отпускаете его.

...