Junior — Middle
U kojim situacijama je preporučljivo koristiti slabu referencu (weak var) u Swift-u?
sobes.tech АИ
Одговор од АИ
Slabe reference (weak var) u Swift-u koriste se za sprečavanje ciklusa jakih referenci (retain cycles), koji dovode do curenja memorije. Preporučuje se korišćenje slabih referenci u sledećim situacijama:
- Kada objekat A referiše na objekat B, a objekat B se vraća na objekat A, i jedna od ovih referenci treba biti slaba da bi se izbegao ciklus.
- Kod delegata (delegates), gde se delegat obično deklarše kao weak, da ne bi zadržavao objekat delegata u memoriji.
Primer:
class ViewController: UIViewController {
var timer: Timer?
func startTimer() {
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in
self?.updateUI()
}
}
func updateUI() {
// ažuriranje interfejsa
}
}
Ovde je self uhvaćen kao slaba referenca da bi se izbegao ciklus zadržavanja između tajmera i kontrolera.