2011-11-26 16 views
1
- (void)addChild:(MyTreeNode *)newChild { 
    newChild.parent = self; 
    [self checkForSelectedNode:newChild]; 
    [self.children addObject:newChild]; 

} 

악기 디버깅시 [self.children addObject:newChild];이 메모리 누수 문제를 해결하는 방법은 무엇입니까? 이 코드 자녀

100 % 누수를 도시하는 클래스 used.The 라인의 속성이다. 그것은 dealloc 메소드에서 적절하게 해제됩니다. 여전히 누설을 표시하고 있습니다.이 누출을 제거하려면 어떻게해야합니까?

+2

ARC를 사용하고 있습니까? 'newChild.parent'는 약하게 선언 되었습니까? 강하게 선언되면 참조주기가 생깁니다. –

+0

아니요 ARC.sorry를 사용하지 않습니다. iphone입니다. beginner.i가 약한 것으로 선언 된 진술을 얻지 못했습니다. (약한 타이핑이 의미하는 경우 강력한 타이핑을 사용하지 않았습니다.)이 누출을 수정하는 방법. 나는 코드에서 총 600kb + 누수가 있고 거의 마지막에이 줄을 가르키고있다. 나는 우둔한가? – sujith1406

+0

분석기를 실행하고 x = 경고를 확인하십시오. – zaph

답변

2

MyTreeNode의 헤더에서 parent 속성은 보유하지 않음을 지정해야합니다. 다른 방법으로는 유지 사이클과 메모리 누수가 있습니다.

설명 : 한 레벨 아래로 노드가 상위 노드를 보유하고 상위 노드는 하위 노드를 보유합니다. 이 보존주기는 해제되지 않습니다.

+0

자세히 설명해 주셔서 감사합니다. – sujith1406

관련 문제