Junior — Middle
¿Cómo se puede hacer una referencia débil en un lenguaje de programación?
sobes.tech AI
Respuesta de la IA
En iOS (Swift), para crear una referencia débil se utiliza la palabra clave weak. Una referencia débil no incrementa el contador de referencias del objeto, lo que ayuda a evitar ciclos de retención y fugas de memoria.
Ejemplo:
class Person {
var name: String
weak var apartment: Apartment? // referencia débil
init(name: String) {
self.name = name
}
}
class Apartment {
let unit: String
var tenant: Person? // referencia fuerte
init(unit: String) {
self.unit = unit
}
}
// Uso:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john
En este ejemplo, Person contiene una referencia débil a Apartment para evitar un ciclo de retención entre Person y Apartment. Si ambas referencias fueran fuertes, los objetos no serían liberados de la memoria.
Importante: las referencias débiles deben ser opcionales (?), ya que el objeto al que hacen referencia puede ser eliminado.