2010-05-24 6 views

답변

7

문제를 해결 하시겠습니까? 여기에는 아무런 문제가 없습니다. -retainCount는 귀하의 비즈니스가 아니며 시스템에 대해 거의 알려주지 않습니다. 자동 응답되는 모든 객체는 예상보다 높은 retainCount를가집니다. 내부 오브젝트가이 오브젝트에 관심이있는 경우, 예상 할 수도 있고 예상하지 않을 수도있는 자체 보유자가 있습니다.

귀하의 비즈니스는 귀하의 보유 및 출시 간의 균형을 유지하는 것입니다. 시스템의 나머지 부분은 시스템 밸런싱을 담당합니다. 당신은 그것을 추측해서는 안되며, 그렇다면 -retainCount가 어쨌든 당신에게 많은 도움이되지 않을 것입니다. 거의 항상 도움이되는 것보다 오도 된 것입니다.

실제로 누수가 발생 했습니까?

+5

+100'retainCount'는 Cocoa 프레임 워크에서 지워 져야합니다. 그것을보고 무슨 일이 일어나고 있는지 궁금해하지만 슬픔을 일으킬. 존재한다는 사실을 잊어 버리면 인생이 더 간단해질 것입니다. –

+0

Rob - 맞습니다 - 보유 개수 문제를 해결하는 중 ... 보유 개수가 예상보다 많았다는 사실을 다시 확인하지 않았습니다. 내 유지 문제를 해결 한 후 모든 것이 효과가있었습니다. BTW - 다른 소유 객체가 할당 대신 고정을 사용하여 속성을 설정했기 때문에이 문제가 발생했습니다. 감사합니다. – OptimisticMonkey

+0

+1,000,000 Dave said. – JeremyP

0

당신은 볼 것이다 문제를 해결하는 방법에 대한 조언 3의 유지 카운트

StepViewController *stepViewController = [[StepViewController alloc] initWithNibName:@"StepViewController" bundle:nil]; 
[self.navigationController pushViewController:stepViewController animated:YES]; 
[stepViewController release]; 
NSLog(@"nextStep stepViewController retain count %i", [stepViewController retainCount]); 

이상의 결과 ...

덕분에 (더 참조 콘센트는 펜촉에 없습니다) 찾으려면 소스 코드 또는 API 설명서를 참조하십시오. 하지만 네비게이션 컨트롤러에는 하나가 있고 xib에서로드 된 뷰에는 하나가 있다는 것이 논리적 인 것처럼 보일 것입니다. 따라서 아마도 네비게이션 컨트롤러의 어떤 것에 의해 수행되는 또 다른 작업이 제 추측 일 것입니다.