私はこのiPhone 3.0 SDKコードで計測器メモリリークを取得しています。私はここでhttp://code.google.com/p/json-framework/iPhoneのメモリリークJSONライブラリ
から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;
可能な場合は、メモリ管理のこのフォームについての詳細を説明してください。私は保持/解放に非常に精通していますが、明らかに実装に問題があります。
ありがとう!
NSArray *データを公開していないことに注意してください...ロックアップを取得すると、また、もし私がRETAIN結果を返すと助けてくれたようです...事前に感謝 –
[jsonString JSONValue]には "alloc"、 "new"、 "copy"という単語は含まれていないので、おそらく自動解放されたポインタつまり、結果配列を解放する必要はありません。同じことが "データ" NSArrayにも当てはまります。 –
'つぶやき'はおそらく自動リリースされるはずです。あなたはそれを初期化してからメソッドの最後に戻します。 また、 'tweets'がプロパティの場合は、tweetの代わりにself.tweetsを使用して、init'dのときにプロパティ宣言ごとに保持されるようにします。 すべてのコードがなくても、あなたが示したことから、物事は不均衡に見えます。 – Hunter