- Published on
Swiftda Deinitialization
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Deinitialization β bu class instancelarini ular kerak bo'lmaganda xotiradan o'chirish jarayoni. Bu tizim tomonidan band qilingan xotira joyini bo'shatadi.
Deinitializer yaratish uchun deinit kalit so'zidan foydalanamiz. Masalan,
class Race {
...
// deinitializer yaratish
deinit {
// deinitialization bajarish
...
}
}
Bu yerda deinit β Race classining deinitializeri.
Deinitializerlar haqida o'rganishdan oldin Swift Initializer mavzusini o'rgangan bo'lishingiz kerak.
Misol:
// class e'lon qilish
class Race {
var laps: Int // aylanishlar soni
// initializer e'lon qilish
init() {
laps = 5
print("Poyga yakunlandi")
print("Jami aylanishlar:", laps)
}
// deinitializer e'lon qilish
deinit {
print("Xotira bo'shatildi")
}
}
// instance yaratish
var result: Race? = Race()
// obyektni xotiradan o'chirish
result = nil
Natija:
Poyga yakunlandi
Jami aylanishlar: 5
Xotira bo'shatildi
Yuqoridagi misolda:
Raceclassi ichida deinitializer yaratdik.
deinit {
print("Xotira bo'shatildi")
}
- Keyin
Raceclassidan instance yaratdik va uniresultnomliRaceturli o'zgaruvchiga tayinladik.
// instance yaratish
var result: Race? = Race()
Bu yerda Race? β result optional ekanligini bildiradi, ya'ni u ikki xil qiymat saqlashi mumkin:
Raceturidagi qiymatlarnilqiymati
- Nihoyat,
resultganilqiymatini tayinladik:
// instanceni xotiradan o'chirish
result = nil
Bu instanceni xotiradan o'chiradi. Deinitializer class instancesi xotiradan o'chirilishidan oldin avtomatik ravishda chaqiriladi. Va ichidagi operator bajariladi.
Eslatma:
- Swiftda deinitializerlardan faqat instancelarni qo'lda xotiradan o'chirmoqchi bo'lganimizda foydalanamiz. Aks holda, Swift avtomatik ravishda xotiradan o'chirishni amalga oshiradi.
- Deinitializerlar faqat classlar bilan ishlatiladi, structlar bilan emas.
- Har bir classda faqat bitta deinitializer bo'lishi mumkin.