2012-01-16 1 views
0

다음 코드를 사용하여 JSON을 구문 분석하고 행 번호 2에 메모리 누수 (100 %)가 발생합니다. 문제가 무엇인지 알 수 없습니까?SBJSON을 사용하여 JSON 문자열을 구문 분석 할 때 메모리 누수가 발생했습니다.

NSString *response = [request responseString]; 
    NSMutableDictionary *responseJSON = [response JSONValue]; (100% leak) 

    NSString *tockenString = [responseJSON objectForKey:@"Token"]; 
    NSString *userIDString = [responseJSON objectForKey:@"ID"]; 
+0

당신이 지나치게 많이 공개하는 것처럼 보입니다. –

+0

내 질문을 편집했지만 여전히 운이 없습니다. – AAV

+0

github의 최신 SBJSON 버전을 사용하고 있습니까? KSJSON과 같은 JSON 구문 분석기를 사용하려고 했습니까? 어떤 코드 경로가 누설의 원인인지 판단하기 위해 Instruments를 사용 해본 적이 있습니까? – warrenm

답변

1

답변을 찾았습니다. SBJsonParser.m 기능 scanRestOfString로 이동

 *o = [[[NSMutableString alloc] initWithBytes:(char*)c length:len encoding:NSUTF8StringEncoding] autorelease]; 

 *o = [[NSMutableString alloc] initWithBytes:(char*)c length:len encoding:NSUTF8StringEncoding]; 

에서 광고

변경 SBJsonParser는 scanRestOfString/인 NSMutableString의 등을 갖는다. 나는 버그를보고했다. 다들 감사 해요.

+1

잘 사용 된 코드 조각에서 버그가 발생한다는 것이 이상하게 보입니다. –

+1

심지어 이상하게 느껴졌습니다. 그러나 변경 사항을 구현할 때 장비 분석에서 누출이 발생하지 않았습니다. – AAV

0

2 개의 자동 변소를 제거하십시오. 그것들은 그 대상을 과다하게 낭비합니다.

+0

내 질문을 편집했지만 여전히 운이 없습니다. – AAV

0

비슷한 문제가 있었지만 실제로 누수가 메서드 체인에서 더 높았지만 Instrument는 (실수로)이 줄을 가리키고있었습니다. 이 코드에서 검색 한 결과를 저장하는 메소드를 살펴보십시오.