Можно с уверенностью предположить, что автоматически освобожденный объект не будет освобожден в кадре стека ниже кадра, в котором он был выделен.Таким образом, в стеке вызовов, таком как
method1
method2 <== instance allocated/autoreleased here
method3 <== safe to use here
, можно с уверенностью предположить, что экземпляр alloc / autoreleased в method2 действителен в method3, если вы не играете грязные трюки и не истощаете пул, созданный в method1, из method3.Это связано с тем, что пул авторелизов в верхнем фрейме не может быть истощен (если не по глупости) в нижнем фрейме.Конечно, как только управление вернется к method1, все ставки отключены.
Выделенные пулы с автоматическим выпуском в нижнем фрейме не будут содержать экземпляр, автоматически высвобожденный в method2, поскольку они не могли быть активным пулом (они не былиt создан еще!) во время автоматического выпуска.
Наконец, , если не метод ниже в цепочке вызовов, между интересующим методом и методом, которыйсоздает и автоматически выпускает экземпляр объекта, создает и истощает пул автоматического выпуска, вы уверены, что вмещающий пул не будет очищен до конца цикла выполнения.