이 iPhone 3.0 SDK 코드로 계측기 메모리 누수가 발생합니다.iPhone 메모리 누수 JSON 라이브러리
// .h
@property (nontatomic,retain) NSMutableArray *tweets;
// .m
import" JSON.h"
@synthesize tweets;
...
tweets = [[NSMutableArray alloc] init];
NSURL *url = [NSURL URLWithString:@"http://www.someurl.com"];
NSString *jsonString = [NSString stringWithContentsOfURL:url];
NSArray *results = [jsonString JSONValue];
NSArray *data = [results valueForKey:@"stories"];
for(NSDictionary *tweet in data) {
TweetmemeData *tweetmeme = [[TweetmemeData alloc] initWithTweet:tweet];
[tweets addObject:tweetmeme];
[self debugDump:tweetmeme];
[tweetmeme release];
}
[results release];
return tweets;
가능한 경우는, 메모리 관리의이 양식에 대한 자세한 내용을 설명해주십시오 :
것은 내가 여기 http://code.google.com/p/json-framework/
에서 JSON을 사용하고있어 내 코드입니다. 나는 retain/release에 매우 익숙하지만 분명히 구현하는 데 문제가있다. :)
고마워!
NSArray * 데이터를 공개하지 않는다는 것에 주목하십시오. 잠금 설정을하면 어떻게됩니까? 또한, 결과가 도움이된다면 ... 미리 감사드립니다. –
규칙에 따르면 [jsonString JSONValue]에는 "alloc", "new"또는 "copy"라는 단어가 없으므로 아마도 자동 실행 된 포인터를 반환합니다 즉 "결과"배열을 릴리스 할 필요가 없다는 의미입니다. 동일한 "데이터"NSArray갑니다. –
'짹짹'이 자동으로 리사이징되어야한다고 봅니다. 당신은 그것을 초기화하고 메소드의 끝에서 그것을 반환합니다. 또한 'tweets'가 속성 인 경우 트윗 대신 self.tweets을 사용하여 init'd 일 때 속성 선언 당 유지됩니다. 모든 코드가 없으면 말하기 어렵지만 표시 한 것에서는 불균형 해 보입니다. – Hunter