Sobes.tech
Junior — Middle

Ar galite pateikti pavyzdį situacijos, kai silpna nuoroda automatiškai nustatoma į null?

sobes.tech AI

Atsakymas iš AI

Silpą nuorodą automatiškai ištrina, kai objektas, į kurį ji nuoroda, yra išlaisvinamas iš atminties (t. y., kai nėra jokių stiprių nuorodų į jį).

Pavyzdžiui, iOS naudojant weak nuorodą į delegatą:

class ViewController: UIViewController {
    weak var delegate: SomeDelegate?
}

Jei delegato objektas yra sunaikinamas (pavyzdžiui, išeina iš apimties ir yra išlaisvintas), tada delegate automatiškai tampa nil. Tai užkerta kelią prieigai prie jau išlaisvinto objekto ir padeda išvengti klaidų bei atminties nutekėjimo.