Desarrollador iOS: pregunta de entrevista

¿Cómo gestionas memoria en una app iOS?

La memoria iOS combina propiedad ARC con cachés acotadas y liberación de recursos grandes; usa memory graph e Instruments para ciclos, crecimiento sin límite y asignaciones que sobreviven a su owner.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

La mayor parte del trabajo de memoria en iOS es higiene de propiedad: saber qué objeto posee a cuál, romper ciclos con referencias débiles y liberar recursos grandes como imágenes decodificadas, buffers de vídeo y contextos de Core Data cuando su pantalla desaparece. Las cachés usan NSCache o un límite de tamaño explícito para encogerse bajo presión, y la app responde a los avisos de memoria soltando datos regenerables. El depurador de grafo de memoria muestra quién retiene un objeto sospechoso, las plantillas Allocations y Leaks de Instruments muestran el crecimiento en el tiempo, y el objetivo es una línea de memoria plana tras repetir muchas veces la misma navegación.

Ejemplo

Abrir y cerrar un editor de fotos veinte veces subía la memoria 40 MB por ciclo; el grafo de memoria mostró el editor retenido por un CADisplayLink nunca invalidado. Invalidarlo en viewWillDisappear dejó la línea plana, y las miniaturas pasaron a un NSCache con un límite de coste de 50 MB para que la cuadrícula deje de crecer sin límite.

Errores frecuentes

  • Guardar UIImages a resolución completa en un array como caché.
  • Ignorar los avisos de memoria y ser terminado por jetsam en dispositivos antiguos.
  • Perseguir asignaciones pequeñas en Instruments mientras un view controller retenido acumula cientos de megabytes.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador iOS