Sobes.tech
Junior — Middle

Swiftda boshqa tillardagi GC ga o'xshash avtomatik xotira tozalash mavjudmi?

sobes.tech AI

AIdan javob

Swiftda klassik tushunishda avtomatik axlat yig'ish (GC) ishlatilmaydi, Java yoki C# dagi kabi. O'rniga, Swift avtomatik referenslar hisoblash tizimini (ARC — Automatic Reference Counting) qo'llaydi. ARC avtomatik ravishda ob'ektga bo'lgan referenslar sonini kuzatadi va referenslar qolmay qolganida xotirani bo'shatadi.

Misol:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

var person1: Person? = Person(name: "Ivan")
var person2 = person1 // referenslar soni oshadi
person1 = nil // ob'ekt hali ham mavjud, chunki person2 unga murojaat qilmoqda
person2 = nil // endi ob'ekt bo'shatiladi

Shu tarzda, ARC avtomatik ishlaydi, ammo an'anaviy axlat yig'uvchilarga xos bo'lgan pauzalar va qo'shimcha xarajatlar bo'lmaydi.