私は現在のアプリケーションからの漏れをすべて排除しました。しかし、インストゥルメンツは、以下の方法では漏れがあることを常に私に伝えています。NSMutableArray型のリークを検出しようとしています。インストゥルメントは、メソッド内にリークを表示
リークのタイプはNSMutableArray
で、サイズは16または32バイトです。はい、私はそれほど多くはないが、それが合計することを知っています。私のコードを漏れなくするために解決しなければならない学問的質問としてもそれを見てください。直接、私は正確に伝えることはできませんが、あなたには、いくつかの冗長なコードを書いているインストゥルメントの出力を見ずに
+ (id) meterFromDict:(NSDictionary*)dict {
Meter* resMeter = [[Meter alloc] initWithType:[[dict objectForKey:@"MeterBase"] intValue]];
//NSLog(@"dict: %@",dict);
resMeter.volume = nil;
resMeter.sounds = nil;
resMeter.repeats = nil;
resMeter.volume = [[[NSMutableArray alloc] initWithArray:[dict objectForKey:@"volumeArray"]] autorelease];
resMeter.sounds = [[[NSMutableArray alloc] initWithArray:[dict objectForKey:@"soundsArray"]] autorelease];
resMeter.repeats = [[[NSMutableArray alloc] initWithArray:[dict objectForKey:@"repeatsArray"]] autorelease];
//NSLog(@"MeterFromDict called and resmeter.repeats count is : %i",[resMeter.repeats count]);
resMeter.bpm = [[dict objectForKey:@"BPM"] floatValue];
return [resMeter autorelease];
}
コードに明らかなリークはありません。それはMeterクラスにあるかもしれませんか? – amattn
'initWithType'インスタンスメソッドを詳しく調べてみるといいでしょう。たぶん、漏れがある – basvk