Sobes.tech
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("---")