Junior — Middle
Πώς επηρεάζει η χρήση ισχυρών αναφορών σε μια γλώσσα προγραμματισμού τη διάρκεια ζωής ενός αντικειμένου στη μνήμη;
sobes.tech AI
Απάντηση από AI
Στο iOS (και στο Swift/Objective-C), οι ισχυρές (strong) αναφορές είναι κανονικές αναφορές σε αντικείμενα που αυξάνουν τον μετρητή αναφορών του αντικειμένου. Όσο υπάρχει τουλάχιστον μία ισχυρή αναφορά στο αντικείμενο, αυτό δεν θα διαγραφεί από τη μνήμη.
Αυτό σημαίνει ότι το αντικείμενο συνεχίζει να υπάρχει στη μνήμη όσο υπάρχουν ισχυρές αναφορές σε αυτό. Όταν όλες οι ισχυρές αναφορές διαγραφούν ή γίνουν nil, το αντικείμενο απελευθερώνεται αυτόματα (ARC — Αυτόματη Καταμέτρηση Αναφορών).
Παράδειγμα:
class Person {
var name: String
init(name: String) { self.name = name }
}
var person1: Person? = Person(name: "Alex") // ισχυρή αναφορά
var person2 = person1 // αυξάνει τον μετρητή αναφορών
person1 = nil // το αντικείμενο εξακολουθεί να υπάρχει, επειδή το αναφέρει το person2
person2 = nil // τώρα το αντικείμενο απελευθερώνεται
Έτσι, οι ισχυρές αναφορές επηρεάζουν άμεσα τη διάρκεια ζωής του αντικειμένου στη μνήμη — όσο υπάρχει τουλάχιστον μία, το αντικείμενο είναι ζωντανό.