Junior — Middle
Μπορείς να δώσεις ένα παράδειγμα κατάστασης όπου μια αδύναμη αναφορά μηδενίζεται αυτόματα;
sobes.tech AI
Απάντηση από AI
Η ασθενής αναφορά διαγράφεται αυτόματα όταν το αντικείμενο στο οποίο αναφέρεται απελευθερώνεται από τη μνήμη (δηλαδή όταν δεν υπάρχουν πλέον ισχυρές αναφορές σε αυτό).
Για παράδειγμα, στο iOS, χρησιμοποιώντας μια weak αναφορά στον delegate:
class ViewController: UIViewController {
weak var delegate: SomeDelegate?
}
Αν το αντικείμενο delegate καταστραφεί (π.χ., βγει από το πεδίο ορατότητας και απελευθερωθεί), τότε το delegate γίνεται αυτόματα nil. Αυτό αποτρέπει την πρόσβαση σε ήδη απελευθερωμένο αντικείμενο και βοηθά στην αποφυγή σφαλμάτων και διαρροών μνήμης.