Можем ли мы использовать NSAutoreleasePool для просмотра? - PullRequest
0 голосов
/ 14 сентября 2011

Я хочу знать, есть ли способ использовать NSAutoreleasePool через представление (точно так же, как мы определяем что-то в .h файле и dealloc их в методе dealloc файла .m).
Возможно ли это?

Ответы [ 2 ]

1 голос
/ 14 сентября 2011

Нет, этого не следует делать.

Из пулов автоматического выпуска Apple документация:

Пул автоматического выпуска должен всегда очищаться в одном и том же контексте(например, вызов метода или функции или тела цикла), в котором он был создан.

и следующий абзац

Используются пулы с автоматическим выпуском«Встроенный». Как правило, не должно быть никаких причин, по которым вы должны сделать пул автоматического выпуска экземпляром переменной объекта.

0 голосов
/ 14 сентября 2011

Конечно, вы можете. Я не уверен, имеет ли это смысл в вашей ситуации, поэтому вам придется проанализировать это, но если вы хотите:

В файле .h

@interface MyView : UIView
{
    NSAutoReleasePool *pool;
}
// rest of view

В файле .m:

@implementation MyView

- (id) initXYZ // whatever initializer you have...
{
    self = [super init...];
    if (self)
    {
        pool = [[NSAutoReleasePool alloc] init];
        // rest of initialization
    }
    return self;
}

- (void) dealloc
{
    // rest of dealloc
    [pool drain];
    [super dealloc];
}

Как я уже сказал, я не уверен, имеет ли это смысл, если вы не выделяете много мелких объектов в вашем представлении.

...