2012-01-28 9 views
12

Estoy desarrollando para iOS y comprobando mi aplicación con IPhone e IPad.iOS - recibo advertencias de memoria pero no tengo idea de por qué

Recibo muchas advertencias de memoria (se llama didReceiveMemoryWarning) pero no tengo idea de por qué. Mi aplicación usa ~ 35MB en los puntos pico, y 4-5 MB cuando está en el punto más bajo.

Intenté encontrar fugas usando 'instrumentos' pero no pude encontrar ningún problema crítico.

¿Hay alguna manera de averiguar por qué el sistema envía advertencias de memoria?

+0

El instrumento Leaks es la mejor herramienta disponible. ¿Ejecutó fugas tanto en el simulador como en el dispositivo? – smparkes

Respuesta

24

Advertencia de memoria es de esperar en una aplicación de iOS. No tiene que ser debido a su aplicación. Otras aplicaciones todavía están en la memoria, incluso si las aplicaciones se suspenden. El sistema operativo hará la administración de la memoria al enviar una advertencia de memoria y eliminar aplicaciones cuando sea necesario. Siempre que use una cantidad de memoria razonable (con poca o ninguna fuga de memoria) y maneje correctamente la recuperación de memoria incorrecta, estará bien.

Además, cuando su aplicación está en modo suspendido, si su aplicación tiene poca huella de memoria, es más probable que su aplicación sobreviva matando el proceso. Como la aplicación con mayor huella de memoria terminará primero.

+0

Recibí "Advertencia de memoria recibida" al depurar mi aplicación en un iPhone 5 con decenas de otras aplicaciones activas. Después de detenerlos uno por uno y volver a intentarlo, ese mensaje de advertencia ya no estaba. – Donald

10

También encontré que "Producto -> Analizar" (Shift + Comando + B) puede ayudarlo a resolver algunos problemas de código antes de comenzar a usar Leaks. Con la introducción de ARC, esto se volvió menos útil.

Cuestiones relacionadas