Можно ли дренировать NSAutoreleasePool дважды или несколько раз?

В книге, которую я читаю, говорится о принуждении NSAutoreleasePool осушать. Означает ли это создание местного NSAutoreleasePool а затем слить его, вместо того, чтобы слить тот, который уже существует? То есть я не могу слить NSAutoreleasePool дважды или несколько раз?

1 ответ

Решение

Нет, вы не можете слить пул авто-релиза более одного раза.

это означает создание локального NSAutoreleasePool, а затем слить его

Да. Либо создайте новый бассейн и осушите его, либо (еще лучше) используйте @autoreleasepool,

мы не можем слить NSAutoreleasePool дважды или несколько раз?

Правильный. Документация дляdrain состояния:

В среде с подсчетом ссылок этот метод ведет себя так же, как и выпуск. Поскольку пул автоматического выпуска не может быть сохранен (см. Сохранение), это приводит к тому, что получатель освобождается.

Поскольку пул авто-выпусков освобождается после первого вызова drain, никогда не допустимо вызывать какой-либо метод позже, drain включен.

Другие вопросы по тегам