2011-09-19 5 views
0

인스트루먼츠 툴은 누출이라고 말하면서 아이디어가 있습니까? iPhone에서 문자열 값을 읽는 중 누수가 발생했습니다.

는 I 루프

enter image description here

enter image description here

대한 종료하여 변수 개체를 분리하고,이 위의 방법의 begininng 의해 I는 변수 obkect 설정 방법이며, 오토 릴리즈 이잖아 ;

NSMutableArray *variables = nil; 
if (self.responseXMLData) { 
    variables = [NSMutableArray arrayWithCapacity:10]; 
      //here is the all the code in the if statement which posted the screen shots 
+0

더 많은 코드를 포함 할 수 있습니까? danWombourne이 지적한대로 retainCount와 릴리스의 균형을 조정하지 않으면 코드가 누출됩니다. '변수'가 해제되지 않은 콜렉션에 추가됩니까? 이것이 누수가 발생하는 일반적인 이유입니다. 또한이 함수 나 dealloc에서'domainItems'가 해제되었는지 확인하십시오. – Sam

+0

@Sam pls 업데이트 된 질문을 참조하십시오 – Spring

+0

어딘가에'variables' (컬렉션이 아닌'variable')가 공개됩니까? init에 변수 컬렉션을 할당한다고 가정합니다. dealloc에서 해제했는지 다시 확인하십시오. – Sam

답변

1

당신이 당신의 dealloc에 ​​self.variables 속성을 해제 (또는 어딘가에)되어 있는지 확인 release 귀하의 책임입니다. 또한 Variable 클래스가 Variable 클래스의 dealloc에 ​​variableValues 속성을 릴리스하는지 확인하십시오.

관련 질문에서 동일한 답변 : iPhone Leak on UITextfield text

2

질문에 대한 수정 후 모든 새로운 독자들에게; 이것은 답변이 아닙니다!


예.

variables은 어디에도 공개하지 않습니다. 당신은 alloc] init] 전화

그래서 그것이 :

+0

"variable"을 의미하는 경우 아니오 아니오 for 루프의 끝에서 해제합니다 – Spring

+0

어디서? 그 모습에서 domainItems 뒤에 루프가 끝납니다. [domainItems release] 다음에 릴리스를 배치해야합니다. –

+0

@Callum Jones pls 업데이트보기 – Spring

관련 문제