2011-07-26 3 views
2

Je reçois une fuite de mémoire pour la ligne contenant la définition sortedArrayUsingSelector. Est-ce que quelqu'un sait quel pourrait être le problème?NSArray triedArrayUsingSelector fuite de mémoire

@property (nonatomic, retain) NSArray *indexLetters; 
... 
NSMutableDictionary *indexedCategories = [[NSMutableDictionary alloc] init]; 
... 
self.indexLetters = [[indexedCategories allKeys] sortedArrayUsingSelector:@selector(compare:)]; 
[indexedCategories release]; 
+0

Que fait-on dans la méthode 'compare'? – Ilanchezhian

+0

C'est un sélecteur de comparaison par défaut. Je n'implémente aucune méthode de comparaison. Ou je me trompe? – dorin

+0

Qu'est-ce qui vous dit, vous fuyez? Instruments ou l'analyseur statique? –

Répondre

-1

Il pourrait être parce que vous n'êtes pas libérer la variable indexLetters dans dealloc.

+0

Je l'ai déjà fait. – dorin

+0

Ce n'est pas clair à partir de votre exemple de code. Vous libérez la variable 'indexedCategories', mais la gestion de la mémoire concernant la variable d'instance' indexLetters' n'est pas affichée. –

+0

Pas vraiment sûr pourquoi cela a été rejeté. Si la variable d'instance 'indexLetters' n'est pas libérée correctement, elle provoquera une fuite. Cela ne semble pas être la raison dans ce cas (d'après le commentaire de Dorin) mais c'est toujours un point valable. –