La comprensión del instrumento de verificación de fugas de memoria - iPhone
Por encima de imágenes dadas es de mis fugas de aplicación.
Aquí quiero entender que, en Detalles detallados, puede ver diferentes colores como el verde claro, el rosa claro, el marrón claro, el violeta claro.
¿Qué significa cada color?
Ahora la otra confusión es "¿Cómo localizar el código que está creando una pérdida de memoria?"
Hasta qué límite de pérdida de memoria - el iPhone real puede continuar. (10 bytes suponer ningún problema, no hay problema 20 bytes & 200 bytes es un problema)
- lo que cada color indica?
- ¿Qué color indica nuestro código/De qué detalle podemos obtener el código donde hemos asignado el objeto & se olvidó de tratarloc él?
(Por ejemplo - El chasquido de segunda célula UIKit en detalle - no podemos llegar al código)
- ¿Por qué tenemos que resolver todas las fugas? - incluso una sola fuga puede bloquear iPhone?
- ¿Por qué iPhone permite que las pérdidas permanezcan en la memoria?/¿por qué la recolección de basura no se realiza automáticamente después de la finalización de la aplicación?
- Si trato de desasignar objetos que deben desasignarse de acuerdo con los instrumentos, Mi aplicación finaliza anormalmente. Si no lo hago, mi aplicación se ejecuta perfectamente, ¿cómo?
- ¿Por qué se sugiere que espere en una vista de hasta 10 segundos o más, si hay una fuga, los instrumentos detectarán la fuga?
+1 Excelente respuesta Kendall. @sagar, debe tener en cuenta que para la pregunta 3, debe * nunca * llamar a dealloc directamente, solo retener o liberar (solo la excepción es [super dealloc]). Creo que su solución es implementar la liberación automática, ya que parece que su bloqueo se debe a la liberación temprana de objetos. por ejemplo [[[NSArray alloc] init] autorelease]; – h4xxr