Quelle est la cause des fuites dans ce code? Je ne peux vraiment pas le comprendre. Sur ces lignes: 1: NSMutableArray * days = [[NSMutableArray alloc] init]; 2: [dic setObject: days forKey: clé]; 3: [jours addObject: valeur];Qu'est-ce qui cause des fuites de mémoire?
Toute la méthode:
-(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 // Christoffer
Oublier le comte retenir. C'est trompeur, au mieux. Vous devez utiliser les outils de débogage de gestion de la mémoire Apple et l'analyseur statique pour détecter les causes des fuites. – JeremyP
Pourquoi pensez-vous que le retainCount est trompeur? À un moment donné, lors du débogage, si vous vérifiez ce que vous pensez que la version finale est (ce dont vous avez souvent une bonne idée) - le retainCount devrait être un juste avant. Sinon, vous avez peut-être oublié une version ailleurs. –