【发布时间】:2012-02-18 23:57:31
【问题描述】:
我消除了当前应用程序中的所有泄漏。但是 Instruments 经常告诉我,我在下面显示的方法中有泄漏。
泄漏的类型为 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 类中?
-
您可能想要深入挖掘并查看
initWithType实例方法。也许有泄漏
标签: iphone objective-c memory-management memory-leaks autorelease