Sobes.tech
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.