Published on

Swiftda Deinitialization

Authors

Bilimingizni sinab ko'ring!

20 ta savol Β· ~20 daqiqa

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:

Swift
Deinitializer
// 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

Yuqoridagi misolda:

  1. Race classi ichida deinitializer yaratdik.
deinit {
  print("Xotira bo'shatildi")
}
  1. Keyin Race classidan instance yaratdik va uni result nomli Race turli o'zgaruvchiga tayinladik.
// instance yaratish
var result: Race? = Race()

Bu yerda Race? β€” result optional ekanligini bildiradi, ya'ni u ikki xil qiymat saqlashi mumkin:

  • Race turidagi qiymatlar
  • nil qiymati
  1. Nihoyat, result ga nil qiymatini 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.
Buy mea coffee