Junior
Mis on strong mälu modifikaatorid?
sobes.tech AI
Vastus AI-lt
Swiftis näitab strong modifikaator, et viide objekti suurendab selle objekti viidete loendurit ühe võrra. See tähendab, et objekt jääb mällu seni, kuni sellel on vähemalt üks tugev viide.
Vaikimisi kasutatakse seda viidetüüpide (klasside) puhul. Kui määrad muutujale nil väärtuse strong modifikaatoriga, vähendab see viidete loendurit. Kui loendur jõuab nulli, vabastatakse objekt mälust.
Näide:
class Person {
var name: String
init(name: String) {
self.name = name
print("\(name) alustab")
}
deinit {
print("\(name) lõpeb")
}
}
var reference1: Person?
var reference2: Person?
reference1 = Person(name: "Alice") // Alice viidete loendur: 1
reference2 = reference1 // Alice viidete loendur: 2
reference1 = nil // Alice viidete loendur: 1
reference2 = nil // Alice viidete loendur: 0, Alice lõpeb