Sobes.tech
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.