Junior — Middle
In welke situaties is het beter om een zwakke verwijzing (weak var) te gebruiken in Swift?
sobes.tech AI
Antwoord van AI
Zwakke referenties (weak var) in Swift worden gebruikt om sterke referentiecycli (retain cycles) te voorkomen, die leiden tot geheugenlekken. Het wordt aanbevolen om zwakke referenties te gebruiken in de volgende situaties:
- Wanneer object A verwijst naar object B, en object B terug verwijst naar object A, en een van deze verwijzingen zwak moet zijn om een cyclus te voorkomen.
- In delegates, waar de delegate meestal als weak wordt gedeclareerd om te voorkomen dat het delegate-object in het geheugen wordt gehouden.
Voorbeeld:
class ViewController: UIViewController {
var timer: Timer?
func startTimer() {
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in
self?.updateUI()
}
}
func updateUI() {
// UI-update
}
}
Hier wordt self als een zwakke referentie vastgelegd om een retain cycle tussen de timer en de controller te voorkomen.