Sobes.tech
Junior — Middle

Hoe maak je een zwakke verwijzing in een programmeertaal?

sobes.tech AI

Antwoord van AI

In iOS (Swift) wordt het sleutelwoord weak gebruikt om een zwakke referentie te maken. Een zwakke referentie verhoogt de referentieteller van het object niet, wat helpt om retentiecycli en geheugenlekken te voorkomen.

Voorbeeld:

class Person {
    var name: String
    weak var apartment: Apartment? // zwakke referentie

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

class Apartment {
    let unit: String
    var tenant: Person? // sterke referentie

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

// Gebruik:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john

In dit voorbeeld bevat Person een zwakke referentie naar Apartment om een retentiecyclus tussen Person en Apartment te voorkomen. Als beide referenties sterk waren, zouden de objecten niet worden vrijgegeven uit het geheugen.

Belangrijk: zwakke referenties moeten optioneel zijn (?), omdat het object waarnaar ze verwijzen kan worden verwijderd.