Junior — Middle
Yapı veya sınıfın kaynak temizleme yöntemi veya yıkıcı var mı?
sobes.tech yapay zeka
AI'dan gelen yanıt
Swift'te yapılar (struct) yoktur destrüktörler, çünkü bunlar değer tipleri olup otomatik olarak yönetilirler. Sınıflar (class) ise, deinit adlı bir destrüktöre sahip olabilir — bu, nesne bellekte serbest bırakılmadan önce çağrılır. Destrüktör genellikle kaynakları serbest bırakır, dosyaları kapatır, abonelikleri iptal eder vb.
Bir sınıfın destrüktör örneği:
class FileHandler {
let fileName: String
init(fileName: String) {
self.fileName = fileName
print("Dosya açıldı \(fileName)")
}
deinit {
print("Dosya kapandı \(fileName)")
}
}
var handler: FileHandler? = FileHandler(fileName: "data.txt")
handler = nil // deinit çağrılır
Bu nedenle, sadece sınıflar deinit destrüktörüne sahiptir, yapılar sahip değildir.