什麼導致此代碼泄漏?我真的無法理解它。 在行上: 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