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.