Middle
Klasslarni boshlash qanday qilib xotira ajratish bilan bog'liq?
sobes.tech AI
AIdan javob
iOS'da sinf yaratish quyidagicha xotira ajratish bilan bog'liq:
- Xotira ajratish: Sinf (obyekt) nusxasini yaratishda, bajarish muhitlari bu obyektning xususiyatlari va boshqa ma'lumotlarini saqlash uchun xotira blokini ajratadi. Ajratilgan xotira hajmi sinf tuzilmasiga, xususan, xususiyatlarning turlari va soniga bog'liq.
- Initsializatorlar: Sinfning (
init) initsializatorlari, xotira ajratilganidan so'ng, yangi obyektning xususiyatlarining boshlang'ich qiymatlarini belgilash uchun javobgardir. Bu jarayon obyektni to'g'ri holatda foydalanishga tayyorlaydi. - Manzillar: Swift'da obyektlar manzilga tayanadigan tiplardir. Sinf nusxasini yaratganingizda, aslida obyekt saqlanadigan xotira joyiga manzil olasiz. Bu manzil obyektning xususiyatlari va metodlariga kirish uchun ishlatiladi.
- ARC (Avtomatik Manzilni Hisoblash): ARC, sinf nusxasiga bo'lgan kuchli manzillar sonini avtomatik ravishda kuzatib boradi. Ob'ektga bo'lgan kuchli manzillar soni nolga teng bo'lsa, ARC bu obyekt uchun ajratilgan xotirani ozod qiladi. Boshlang'ich holatda, kuchli manzillar soni oshiriladi.
- Deinit: Sinfning
deinitmetodi (desinitalizator) ARC xotira ozod qilinishidan darhol oldin chaqiriladi. Bu, resurslarni bo'shatish kabi tozalash ishlarini bajarish uchun ishlatiladi.
class MyClass {
let myProperty: Int // Xotira talab qiladigan xususiyat
init(value: Int) {
self.myProperty = value // Xotira ajratilganidan so'ng xususiyatni boshlash
print("MyClass nusxasi yaratildi (xotira ajratildi va boshlatildi).")
}
deinit {
print("MyClass nusxasi yo'q qilindi (xotira bo'shatildi).")
}
}
// Sinf nusxasini yaratish - xotira ajratish va init chaqirish
var instance: MyClass? = MyClass(value: 10)
// Manzilni bo'shatish - ARC xotira bo'shatilishini kuzatishni boshlaydi
instance = nil // instance manziliga manzil o'chirilganda, ARC xotirani bo'shatishi va deinit ni chaqirishi mumkin