Sobes.tech
Junior — Middle

Obsahuje Swift automatické spravování paměti, podobně jako GC v jiných jazycích?

sobes.tech AI

Odpověď od AI

V jazyce Swift se nepoužívá tradiční automatické sběrání odpadu (GC), jako v Javě nebo C#. Místo toho Swift používá systém automatického počítání odkazů (ARC — Automatic Reference Counting). ARC automaticky sleduje počet odkazů na objekt a uvolní paměť, když odkazů nezbývá.

Příklad:

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

var person1: Person? = Person(name: "Ivan")
var person2 = person1 // zvyšuje počet odkazů
person1 = nil // objekt stále žije, protože person2 na něj odkazuje
person2 = nil // nyní je objekt uvolněn

Tímto způsobem ARC funguje automaticky, ale bez pauz a dodatečných nákladů, které jsou typické pro tradiční sběrače odpadu.