4

for 루프에서 autorelease 풀을 생성 중입니다 (메소드 A에서). 루프를 반복 할 때마다 다른 메서드 (메서드 B)를 호출합니다. 방법 B는 자동 반복 처리 된 오브젝트를 메소드 A로 리턴합니다. 메소드 A의 for 루프에서 풀을 제거하면 메소드 B에서 보낸 오브젝트가 해제됩니까?(중첩 된) 자동 해제 풀의 범위는 무엇입니까?

감사합니다.

답변

8

예 - 개체를 -autorelease에게 보낼 때마다 최상위 수준의 자동 해제 풀에 추가됩니다. 메소드 B에서 새로운 자동 릴리즈 풀을 생성하지 않거나 콜 스택을 더 다운하지 않는 한, 메소드 A의 풀은 최상위 레벨 풀이어야합니다.

+2

유일한 catch는 threads입니다. autorelease 풀 스택은 스레드 당 있습니다. – Chuck

관련 문제