В книге, которую я читаю, речь идет о том, чтобы вытеснить NSAutoreleasePool
. Означает ли это создание локального NSAutoreleasePool
, а затем осушение, вместо того, чтобы слить тот, который уже существует? То есть, могу ли я не сливать NSAutoreleasePool
два или несколько раз?Может ли NSAutoreleasePool сливаться два или несколько раз?
0
A
ответ
2
Нет, вы не можете сливать пул авторефератов более одного раза.
это означает создание локальной NSAutoreleasePool, а затем слейте его
Да. Либо создайте новый пул и слейте его, либо (еще лучше) используйте @autoreleasepool
.
Мы не можем сливать NSAutoreleasePool два или несколько раз?
Исправить. The documentation for drain
:
В среде с подсчетом ссылок этот метод ведет себя так же, как и выпуск. Поскольку пул авторезистов не может быть сохранен (см. retain), это приводит к тому, что приемник будет освобожден.
Поскольку autorelease бассейн будет освобождён после первого вызова drain
, он никогда не бывает, чтобы позвонить любой метод на него впоследствии, drain
включены.
Что произошло, когда вы попробовали? Что еще вы узнали об этом, прочитав [документацию] (http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSAutoreleasePool_Class/)? –