2011-08-21 4 views

답변

1

(이것은 재귀 호출되므로 메소드가 자신을 호출 할 때 EDIT :.. 명백하게, 다음의 논의에 따라)

메모리 오브젝트에 대한 참조가 제거 될 때 메모리 누수가 발생하지만 개체 기억 속에 남는다. 할당 된 메모리를 적절하게 해제하는 한 메모리 누수가 발생하지 않습니다.

+2

예, 실제로는 재귀가 아닙니다. 타이머에 대한 다음 호출을 연기하기 때문입니다. – jtbandes

+0

@jtbandes : 그건 논쟁의 여지가 있습니다. 내 눈에는이 메소드가 기본적으로 다시 호출하기를 기다린다. 이것은 재귀이다. –

+0

@jtbandes : 타이머 ('afterDelay :')를 제거하고 지연을 수행하기 위해'sleep '변형을 사용했다고 가정 해보십시오. 두 경우 모두 최종 결과는 메서드 자체를 호출하는 것입니다. –

0

아니요, 누출되지 않습니다. 메서드가 호출되는 동안 자체는 유지되고 호출이 완료되면 해제됩니다.

그러나 타이머를 만드는 것은 좋지 않습니다. 대신에 NSTimer를 사용하십시오 : 훨씬 더 정확하며 이처럼 표류하지 않습니다.

관련 문제