1

에 할당 된 객체의 누출, 내가 해제잠재적 내가 그것을위한 응용 프로그램 위임 파일과 ALLOC 객체에 ActivityIndicatorC 클래스를 사용하지만 저는 여기에 메모리 누수를 얻을 활동 표시 창

self.ActIndicator=[[ActivityIndicatorC alloc] initwithWindow:window]; 

ActIndicator의 dealloc 섹션에서이 객체 하지만 내가 위의 언급 코드에 대해 똑같은 누수가 발생할 때까지.

아무 해결책이라도 제안 할 수있는 해결책.

답변

2

ActIndicator가 속성을 보유하도록 설정된 경우. 다음 .H 파일에서 누수가 (nonatominc 유지) @property을 @property에 (nonatominc을 할당) 또는

ActivityIndicatorC *theActivity= [[ActivityIndicatorC alloc] initwithWindow:window]; 
self.ActIndicator=theActivity; 
[theActivity release]; 
3

개체가 두 번 유지되고있다. self.ActIndicator =을 사용할 때 컴파일러가 @property(retain,...)을 사용하여 생성 한 설정기를 호출합니다.

self.ActIndicator=[[ActivityIndicatorC alloc] initwithWindow:window]; 
    ^retainCount + 1     ^^^^^ and +1 because of this. 

당신은

self.ActIndicator = [[[ActivityIndicatorC alloc] initwithWindow:window] autorelease]; 

또는

ActIndicator = [[ActivityIndicatorC alloc] initwithWindow:window]; 

를 작성할 수 그리고 당신은 actIndicator에 이름이나 (더 나은) activityIndicator을 변경해야합니다. 클래스 이름 만 대문자로 시작해야합니다.

1

alloc-init을 사용하여 만든 개체를 수동으로 해제해야합니다. 따라서 [ActIndicator release]를 작성해야합니다. 또는 그냥 autorelease.