Создайте свои пулы автоматического выпуска с ограниченными временами жизни и явными областями действия.
в этом случае ваш пул авто-релиза хранится в иваре (предположительно).
просто сделайте его локальным для метода, вот так:
- (void)internalStart
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
//...
[pool drain], pool = nil;
}
типичные проблемы:
1) пулы автоматического выпуска основаны на стеке (пулы выдвигаются и выталкиваются). удерживая его, вы можете легко испортить порядок в стеке.
2) если этот класс работает в многопоточном контексте, вы можете легко пропускать пулы или разрушать порядок стеков, когда вы извлекаете и извлекаете пулы из нескольких потоков.
3) вы также можете пропускать пулы в многопоточных контекстах