2011-01-13 2 views
1
NSString *anError = nil; 
id plist; 
plist = [NSPropertyListSerialization propertyListFromData:rawCourseArray mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&anError]; 
if (anError != nil){ 

    [anError release]; 
} 

위의 코드는 호출 할 때마다 메모리 누수가 발생합니다. 나는 오류를 공개하지만 여전히 누수가있다. 이 문제에 대한 해결책을 보지 못했습니다. 나는 이것을 이미 게시했고 대부분이 누출이 아니라고 대답했다. 그러나 누수 성능 도구에서 여기 참조 :불쾌한 NSPropertyListSerialization 누설

alt text

나는 이것이 결국 내 응용 프로그램 충돌 때문에 고정해야합니다. 어떤 아이디어? 많은 감사

+0

나는 여전히 누수에 대한 수정이 필요합니다. NSPropertyListSerialization을 호출 할 수있는 또 다른 방법이 있습니까? – BX69

답변

1

동일한 문제가있었습니다. 사용 된 propertyListWithData : options : format : error : 동일한 결과가 있습니다. 같은 결과와 함께 사용할있는 NSDictionary initWithContentsOfFile :

유출 된 객체 # 주소 크기 책임 도서관 담당 프레임 NSCFNumber, 304 바이트 MediaToolbox FigRemote_CreatePropertyListFromBinaryPListData

FWIW가> 19 < 다중 - 나는 단지 PLIST에 사전 및 배열과 문자열을, 아니 번호.

문제는 오류 개체 (또는 메서드의 문자열)가 아닙니다. 그 문제는 autorelease이어야하기 때문에 위의 plist되지 않습니다. 결국, 나는 포기하고 JSON과를 사용하여 재 구현 :

http://stig.github.com/json-framework/api/index.html

==> 더 이상 누출.

최저

, 프레드

+0

JSON이 유일한 옵션 일 수 있습니다. :^( – BX69

+0

Json은 누출없이 작동했습니다! – BX69

0

나는 전에도 같은 문제가있었습니다.

기본적으로 사용자의 error 변수가 시작하지 않고 변수가 해제 되었기 때문입니다. 그래서 여러분이 할 수있는 일은 빈 문자열에 여러분의 NSString *error을 초기화 한 후에 해제하는 것입니다. 아니면 전혀 공개하지 마십시오.

+0

당신은 제안했지만 행운은 시험해 보지 않았습니다. – BX69