Junior
Τι είναι οι τροποποιητές μνήμης strong;
sobes.tech AI
Απάντηση από AI
Ο τροποποιητής strong διατηρεί μια ισχυρή αναφορά στο αντικείμενο, αποτρέποντας την απελευθέρωσή του όσο υπάρχει τουλάχιστον μια ισχυρή αναφορά. Χρησιμοποιείται από προεπιλογή για μεταβλητές που δηλώνονται χωρίς ειδικούς τροποποιητές.
Παράδειγμα:
class MyClass {
var name: String = ""
init(name: String) {
self.name = name
print("Αντικείμενο '\(name)' δημιουργήθηκε")
}
deinit {
print("Αντικείμενο '\(name)' απελευθερώθηκε")
}
}
// ισχυρή αναφορά
var obj1: MyClass? = MyClass(name: "Πρώτο")
// Άλλη ισχυρή αναφορά
var obj2: MyClass? = obj1
print("---")
// Ορισμός μιας αναφοράς σε nil δεν οδηγεί σε απελευθέρωση
obj1 = nil
print("---")
// Ορισμός της τελευταίας ισχυρής αναφοράς σε nil οδηγεί σε απελευθέρωση
obj2 = nil
print("---")