Можно ли дренировать NSAutoreleasePool дважды или несколько раз?
В книге, которую я читаю, говорится о принуждении NSAutoreleasePool
осушать. Означает ли это создание местного NSAutoreleasePool
а затем слить его, вместо того, чтобы слить тот, который уже существует? То есть я не могу слить NSAutoreleasePool
дважды или несколько раз?
1 ответ
Нет, вы не можете слить пул авто-релиза более одного раза.
это означает создание локального NSAutoreleasePool, а затем слить его
Да. Либо создайте новый бассейн и осушите его, либо (еще лучше) используйте @autoreleasepool
,
мы не можем слить NSAutoreleasePool дважды или несколько раз?
Правильный. Документация дляdrain
состояния:
В среде с подсчетом ссылок этот метод ведет себя так же, как и выпуск. Поскольку пул автоматического выпуска не может быть сохранен (см. Сохранение), это приводит к тому, что получатель освобождается.
Поскольку пул авто-выпусков освобождается после первого вызова drain
, никогда не допустимо вызывать какой-либо метод позже, drain
включен.