Swift - Sıfırlama
Bir sınıf örneğinin serbest bırakılması gerekmeden önce bellek alanını serbest bırakmak için 'deinitializer' çağrılmalıdır. 'Deinit' anahtar sözcüğü, sistem kaynaklarının kapladığı bellek alanlarını serbest bırakmak için kullanılır. Deinitialization yalnızca sınıf türlerinde kullanılabilir.
Bellek Alanını Boşaltmak İçin İlk Durumdan Çıkarma
Swift 4, kaynakları boşaltmak için artık ihtiyaç kalmadığında örneklerinizi otomatik olarak serbest bırakır. Swift 4, Otomatik Referans Sayma'da açıklandığı gibi otomatik referans sayma (ARC) aracılığıyla örneklerin bellek yönetimini gerçekleştirir. Örnekleriniz serbest bırakıldığında genellikle manuel temizlik yapmanız gerekmez. Ancak, kendi kaynaklarınızla çalışırken, kendi başınıza bazı ek temizlik yapmanız gerekebilir. Örneğin, bir dosyayı açmak ve ona bazı veriler yazmak için özel bir sınıf oluşturursanız, sınıf örneğinin serbest bırakılmasından önce dosyayı kapatmanız gerekebilir.
var counter = 0; // for reference counting
class baseclass {
init() {
counter++;
}
deinit {
counter--;
}
}
var print: baseclass? = baseclass()
print(counter)
print = nil
print(counter)
Yukarıdaki programı oyun alanını kullanarak çalıştırdığımızda, aşağıdaki sonucu elde ederiz -
1
0
Print = nil ifadesi atlandığında sayacın değerleri, başlatılmadığı için aynı kalır.
var counter = 0; // for reference counting
class baseclass {
init() {
counter++;
}
deinit {
counter--;
}
}
var print: baseclass? = baseclass()
print(counter)
print(counter)
Yukarıdaki programı oyun alanını kullanarak çalıştırdığımızda, aşağıdaki sonucu elde ederiz -
1
1