Sobes.tech
Junior — Middle

Swift are colectare automată a gunoiului, similară cu GC în alte limbaje?

sobes.tech AI

Răspuns de la AI

În Swift, nu se utilizează colectarea automată a gunoiului (GC) în sensul clasic, ca în Java sau C#. În schimb, Swift aplică un sistem de numărare automată a referințelor (ARC — Automatic Reference Counting). ARC urmărește automat numărul de referințe către un obiect și eliberează memoria atunci când nu mai există referințe.

Exemplu:

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

var person1: Person? = Person(name: "Ivan")
var person2 = person1 // crește contorul de referințe
person1 = nil // obiectul încă trăiește, deoarece person2 face referire la el
person2 = nil // acum obiectul este eliberat

Astfel, ARC funcționează automat, dar fără pauze și costuri suplimentare, caracteristice colectorilor de gunoi tradiționali.