Многопоточность с iPhone SDK - PullRequest
0 голосов
/ 20 июня 2009

Я использую отдельный NSAutoReleasePool для своей темы

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
[self bulkyFunction]; // time consuming op
[self performSelectorOnMainThread: @selector(doneAll) withObject:nil waitUntilDone:NO];
[pool release];

и я вызываю функцию (bulkyFunction), которая выделяет две строки.

    currentTitle = [[NSMutableString alloc]init];
    currentSummary = [[NSMutableString alloc]init];

Я отпускаю их после использования.

Эта тема периодически вызывается. Но когда он вызывается во второй раз, доступ к currentTitle падает.

Это потому, что мой оператор [pool release] выпускает currentTitle, который уже был освобожден оператором [currentTitle release]? Потому что, если [currentTitle release] закомментирован, проблем нет. Но меня беспокоит утечка памяти.

Пожалуйста, совет.

1 Ответ

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

[pool release] не отпустит currentTitle, если вы не позвоните [currentTitle autorelease] где-то. Я думаю, было бы полезно, если бы вы опубликовали в полном объеме bulkyFunction.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...