-(void)doSomething
{
[self performSelector:@selector(doSomething) withObject:nil afterDelay:0.1];
}
메모리 누수가 발생합니까?같은 메서드 내에서 메서드를 호출하면 메모리 누수가 발생합니까?
-(void)doSomething
{
[self performSelector:@selector(doSomething) withObject:nil afterDelay:0.1];
}
메모리 누수가 발생합니까?같은 메서드 내에서 메서드를 호출하면 메모리 누수가 발생합니까?
(이것은 재귀 호출되므로 메소드가 자신을 호출 할 때 EDIT :.. 명백하게, 다음의 논의에 따라)
메모리 오브젝트에 대한 참조가 제거 될 때 메모리 누수가 발생하지만 개체 기억 속에 남는다. 할당 된 메모리를 적절하게 해제하는 한 메모리 누수가 발생하지 않습니다.
아니요, 누출되지 않습니다. 메서드가 호출되는 동안 자체는 유지되고 호출이 완료되면 해제됩니다.
그러나 타이머를 만드는 것은 좋지 않습니다. 대신에 NSTimer를 사용하십시오 : 훨씬 더 정확하며 이처럼 표류하지 않습니다.
예, 실제로는 재귀가 아닙니다. 타이머에 대한 다음 호출을 연기하기 때문입니다. – jtbandes
@jtbandes : 그건 논쟁의 여지가 있습니다. 내 눈에는이 메소드가 기본적으로 다시 호출하기를 기다린다. 이것은 재귀이다. –
@jtbandes : 타이머 ('afterDelay :')를 제거하고 지연을 수행하기 위해'sleep '변형을 사용했다고 가정 해보십시오. 두 경우 모두 최종 결과는 메서드 자체를 호출하는 것입니다. –