Sobes.tech
Junior — Middle

Jak lze vytvořit slabé odkazování v programovacím jazyce?

sobes.tech AI

Odpověď od AI

V iOS (Swift) se používá klíčové slovo weak k vytvoření slabé reference. Slabá reference nezvyšuje počítadlo odkazů na objekt, což pomáhá předcházet cyklům udržení a únikům paměti.

Příklad:

class Person {
    var name: String
    weak var apartment: Apartment? // slabá reference

    init(name: String) {
        self.name = name
    }
}

class Apartment {
    let unit: String
    var tenant: Person? // silná reference

    init(unit: String) {
        self.unit = unit
    }
}

// Použití:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john

V tomto příkladu Person obsahuje slabou referenci na Apartment, aby se zabránilo cyklu udržení mezi Person a Apartment. Pokud by obě reference byly silné, objekty by nebyly uvolněny z paměti.

Důležité: slabé reference by měly být volitelné (?), protože objekt, na který odkazují, může být odstraněn.