Junior — Middle
Vai vari sniegt piemēru situācijai, kad vāja atsauce automātiski tiek iestatīta uz nulli?
sobes.tech AI
Atbilde no AI
Vājā atsauce automātiski tiek anulēta, kad objekts, uz kuru tā norāda, tiek atbrīvots no atmiņas (t.i., kad uz to vairs nav stipru atsauču).
Piemēram, iOS, izmantojot weak atsauci uz deleģentu:
class ViewController: UIViewController {
weak var delegate: SomeDelegate?
}
Ja deleģenta objekts tiek iznīcināts (piemēram, iziet no apgabala un tiek atbrīvots), tad delegate automātiski kļūst par nil. Tas novērš piekļuvi jau atbrīvotam objektam un palīdz izvairīties no kļūdām un atmiņas noplūdēm.