什么导致此代码泄漏?我真的无法理解它。 在行上: 1:NSMutableArray * days = [[NSMutableArray alloc] init]; 2:[dic setObject:days forKey:key]; 3:[days addObject:value];什么是造成内存泄漏?
整个方法:
-(void) addValueToDictionary: (NSMutableDictionary *) dic withValue: (NSNumber *) value forKey: (NSString *) key {
NSMutableArray * days = [dic objectForKey:key];
if (days == nil) {
NSMutableArray * days = [[NSMutableArray alloc]init];
[days addObject:value];
[dic setObject:days forKey:key];
[days release];
days = nil;
}
else {
[days addObject:value];
}
}
BR //克里斯托弗
忘掉保留计数。它最好是误导。您应该使用Apple内存管理调试工具和静态分析器来检测泄漏的原因。 – JeremyP 2010-08-26 14:14:29
你为什么认为retainCount有误导性?在某些时候,在调试的时候,如果你检查你认为最终版本是什么(你经常有一个好主意) - retainCount应该在它之前。如果没有,你可能已经忘记了其他地方的发布。 – 2010-08-26 14:52:15