2010-11-09 25 views
0

J'appelle createTableData de viewDidLoad. Ce que je ne comprends pas, c'est que je fais un alloc pour un NSMutableDictionary mais je ne comprends pas pourquoi cet objet n'est pas libéré de la mémoire, malgré la sortie. Je vois des fuites de mémoire et les fuites semblent pointer vers cette section de code. Quelqu'un peut-il me diriger vers une url où je pourrais être capable de lire/comprendre ce que je devrais faire par rapport à ce que je fais? Je n'arrive pas à voir où je me suis trompé ici.comment dealloc NSMutableDictionary

- (void)createTableData { 
NSMutableArray *toolList; 
toolList=[[NSMutableArray alloc] init]; 
[toolList addObject:[[NSMutableDictionary alloc] 
    initWithObjectsAndKeys:@"Some title",@"name", 
      @"1",@"whatViewController", 
      @"",@"url", 
      @"some_icon.jpg",@"picture", 
      @"some detail text",@"detailText",nil]]; 
toolData=[[NSMutableArray alloc] initWithObjects:toolList,nil]; 
[toolList release]; 
} 

- (void)dealloc { 
    [toolData release]; 
    [super dealloc]; 
} 

Répondre

1
[toolList addObject:[[NSMutableDictionary alloc] 
    initWithObjectsAndKeys:@"Some title",@"name", 
      @"1",@"whatViewController", 
      @"",@"url", 
      @"some_icon.jpg",@"picture", 
      @"some detail text",@"detailText",nil]]; 

Dans cette ligne ajouter votre NSMutableDictionary objet en tableau et non le relâcher. code correct serait (en utilisant la méthode de classe qui retourne déjà objet autoreleased):

[toolList addObject:[NSMutableDictionary 
    dictionaryWithObjectsAndKeys:@"Some title",@"name", 
      @"1",@"whatViewController", 
      @"",@"url", 
      @"some_icon.jpg",@"picture", 
      @"some detail text",@"detailText",nil]]; 

ou explicitement AutoRelease votre dictionnaire temporaire:

[toolList addObject:[[[NSMutableDictionary alloc] 
    initWithObjectsAndKeys:@"Some title",@"name", 
      @"1",@"whatViewController", 
      @"",@"url", 
      @"some_icon.jpg",@"picture", 
      @"some detail text",@"detailText",nil] autorelease]]; 
+0

Wow ... merci pour la réponse vraiment rapide! – uncivilized

+0

J'ai également trouvé cet article qui explique essentiellement ce que vous avez fourni: http://www.memo.tv/memory_management_with_objective_c_cocoa_iphone – uncivilized