Pregunta

verde mano i am. Estoy usando instrumentos, y se hizo una gran ayuda para mí hasta ahora, pero estoy confundido ahora porque es informar de una pérdida de memoria a mí mientras its me muestra la historia de bloques filtrados que el recuento de referencia de esa memoria se había convertido finalmente en 0 . ¿Qué significa?
Es realmente embarazoso que no podía publicar una imagen aquí ... así que tengo que describirlo en texto. Espero que sería lo suficientemente claro para usted:

Tipo de evento || REFCT || Biblioteca responsables || Responsable de llamadas
malloc || 1 || MyWeather || + [ForecastData parseSingleForecastWithXMLElement:]
autorelease || || MyWeather || + [ForecastData parseSingleForecastWithXMLElement:]
retener || 2 || MyWeather || + [ForecastData parseWithData:]
liberar || 1 || Fundación || + [Drenaje NSAutoreleasePool:]
retener || 2 || Fundación || + [NSThread initWithTarget: Selector: Objeto:]
liberar || 1 || Fundación || + [NSString comparar: Opciones:]
liberar || 0 || MyWeather || + [RootViewController dealloc]

Cualquier ayuda será apreciada ~

¿Fue útil?

Solución

Fue causado por la falta de [súper dealloc] en dealloc de forecastData, de manera que parte de la memoria de forecastData Nunca se libera mientras que el recuento de retener forecastData se han convertido en cero. De todos modos, gracias a todos.

Otros consejos

usted no está proporcionando mucha código de ejemplo por lo que podría ser cualquier cosa. El RefCount de MyWeather es cero, pero sigue siendo una Fundación, así que tal vez en cualquier lugar ha asignado un NSSting un nunca lanzado?

por cierto. Yo nunca alloc-init una cadena, en lugar de ajustar el texto directamente y dejar que la gestión de memoria haga el resto. No sé por qué, pero creo que es un poco buggy. A veces se producen errores extraños si intento algo así:

NSString *str = [[NSString alloc] initWithString:@"some Text"];
myLabel.text = str;
[str release];

myLabel debe retenerlo pero no es así. Voy a obtener un error si intento release ella. (Y una fuga si no)

Si utilizo

NSString *str = @"some Text";
myLabel.text = str;

funciona muy bien, sin errores y sin fugas.

¿Usted intentó esto en el dispositivo? A veces se puede ver fugas muestran que no son realmente las fugas.

La otra razón podría haber sido que tenía NSZombie activada, lo que significa que los objetos realmente no son liberados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top