Junior — Middle
¿Puedes explicar qué tipos de fugas de memoria existen en las aplicaciones?
sobes.tech AI
Respuesta de la IA
En las aplicaciones de iOS, los principales tipos de fugas de memoria están relacionados con una gestión incorrecta de las referencias a los objetos:
- Ciclos de retención fuertes (Strong Reference Cycles) — cuando dos objetos tienen referencias fuertes entre sí, y ninguno puede ser liberado.
- Fugas debido a cierres (Closures) — si un cierre captura a self con una referencia fuerte, esto puede llevar a un ciclo de retención.
- Recursos no liberados — objetos que no se liberan debido a la falta de llamada a deinit o uso incorrecto.
Ejemplo de ciclo de retención fuerte:
class Person {
var apartment: Apartment?
}
class Apartment {
var tenant: Person?
}
let person = Person()
let apartment = Apartment()
person.apartment = apartment
apartment.tenant = person // ciclo de retención fuerte
Para evitar esto, se utilizan referencias débiles (weak) o no universales (unowned).