Tengo una matriz NSMutableArray
con objetos felices. Estos objetos se encienden con fiereza (fugas) cada vez que trato de borrar la matriz de todos los objetos y repoblarla.NSMutableArray destrucción
Se asigna en la función init al igual que
self.list = [NSMutableArray array];
Los diferentes métodos que he utilizado para desactivarla a cabo incluyen:
self.list = nil;
self.list = [NSMutableArray array];
y
[self.eventList removeAllObjects];
explícitamente la asignación y liberación la matriz tampoco funciona. La fuga SÓLO ocurre cuando trato de restablecer la lista.
¿Se está perdiendo un paso al reiniciar o este es un problema diferente?
@property (nonatomic, retener) NSMutableArray * list; Tengo una sintetizar, pero el volcado del núcleo solo ocurre cuando trato de liberar los objetos manualmente. Lo que quiero decir al activarme es que los objetos se escapan (creo) – SageAMDP
¿cómo sabes que están goteando? ¿Estás revisando instrumentos? ¿Fugas? Si obtiene accesos incorrectos, eso significa que está liberando algo que ya está desmantelado. Las fugas son más difíciles de encontrar en el sentido de que necesita usar una herramienta para atraparlas (o simplemente ver crecer su memoria). – Elfred
, si está haciendo [list addObject: [[MyObj alloc] init]; y posterior [list removeAllObjects]; probablemente esté goteando. La solución sería proporcionar un método de clase que devuelva un objeto liberado automáticamente. – Elfred