J'ai un NSMutableDictionary avec la clé étant le premier alphabet du nom d'un objet. La vue est quelque chose comme l'onglet "Contacts" sur l'iPhone. De plus, l'utilisateur peut sélectionner des objets individuels dans la liste.Dois-je libérer tableau renvoyé à partir de [NSMutableDictionary ValueForKey:]
Dans le code, je trouve chaque objet sélectionné pour les traiter davantage.
NSMutableArray *objectsToAdd = [[NSMutableArray alloc] init];
NSMutableArray *array = nil;
for (NSString *key in self.nameIndex) {
array = (NSMutableArray *)[searchedNameDictionary valueForKey:key];
for (Objects *eachObject in array) {
if (eachObject.objectIsSelected){
[objectsToAdd addObject:eachObject];
}
}
}
[array release];
-(void)dealloc()
{
[searchedNameDictionary release];
}
L'application se bloque lorsque je libère searchedNameDictionary, avec le message que l'objet désalloué est référencé.
Maintenant, si dans le code ci-dessus, je supprime [tableau version] l'application fonctionne bien.
Ma question est de libérer 'array' est en train de libérer les objets dans searchingNameDictionary, qui est ce qui semble se passer.
La libération d'un tableau n'entraînerait pas de fuite de mémoire?
Merci, j'aurais dû appliquer le principe de base de la gestion de la mémoire. Sentez-vous plus confiant avec le code maintenant. Merci encore d'avoir répondu à ma question. – prd