Junior — Middle
¿Qué causa la aparición de fugas de memoria en las aplicaciones?
sobes.tech AI
Respuesta de la IA
Las fugas de memoria en las aplicaciones ocurren cuando la memoria asignada a objetos o datos no se libera después de que dejan de ser necesarios. En iOS, esto a menudo está relacionado con:
- Ciclos de referencias entre objetos (retained cycles), especialmente al usar ARC (Contador de Referencias Automático). Por ejemplo, cuando dos objetos se refieren entre sí con referencias fuertes, no se liberan.
- Uso incorrecto de cierres (closures), que capturan self con una referencia fuerte.
- No liberar recursos como temporizadores, observadores o descriptores de archivos.
Ejemplo de ciclo de retención con cierre:
class ViewController {
var closure: (() -> Void)?
func setup() {
closure = {
print(self) // self se captura fuertemente, creando un ciclo
}
}
}
Para evitar fugas, se utilizan referencias débiles (weak) o no poseídas (unowned) en los cierres y se controla la gestión correcta del ciclo de vida de los objetos.