2010-11-02 15 views
26

Tengo problemas para solucionar problemas relacionados con la memoria en la aplicación de mi iPad, pero lo bueno es que he aprendido sobre "montones" debido a eso. Lo malo es que todavía no puedo entender qué significa la información que me proporcionan. alt text¿Qué significa <non-object> en Asignar "imágenes"?

Entonces, ¿qué son estos no objetos que aún están vivos y se lleva la mayor parte de la memoria descrita en Heap Growth? ¿Es posible deshacerse de ellos? Parece que la mayoría de ellos están relacionados con diversas operaciones de dibujo, CALayer, contexto y etc. (Categoría: "Malloc" o "Realloc"). Puedo proporcionar más detalles si es necesario.

Respuesta

20

Significa que el bloque de memoria no se asignó a un objeto (por ejemplo, la estructura c pura). Normalmente se asignan por código de sistema de sistema, por lo que hay algunos otros objetos que se filtran. P.ej. si olvidó liberar UIView, entonces su capa no será liberada también.

Puede abrir el panel "Detalles ampliados" (consulte el menú "Ver") y analizar la pila de llamadas. Tenga en cuenta que uno que olvidó release puede provocar una gran cantidad de pérdidas de memoria, por lo tanto, intente reparar las fugas más fáciles y luego verifique si otras fugas desaparecen.

Un truco más. Puede desactivar el bloque funcional de su aplicación una por una y ver si las fugas desaparecen. Entonces podrá ubicar el módulo (clase, bloque funcional, etc.) donde ocurra.