Sobes.tech
Junior — Middle

არის თუ არა Swift-ში ავტომატური მეხსიერების მართვა, მსგავსი GC სხვა ენებში?

sobes.tech AI

პასუხი AI-სგან

Swift-ში კლასიკურ გაგარ კოლექციონერს (GC) არ გამოიყენება, როგორც Java ან C#-ში. ამის ნაცვლად, Swift იყენებს ავტომატურ მითითებების რაოდენობის (ARC — Automatic Reference Counting) სისტემას. ARC ავტომატურად აკონტროლებს ობიექტზე მითითებების რაოდენობას და გაათავისუფლებს მეხსიერებას, როდესაც მითითებები აღარ რჩება.

მაგალითი:

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

var person1: Person? = Person(name: "Ivan")
var person2 = person1 // ზრდის მითითებების რაოდენობას
person1 = nil // ობიექტი ჯერ კიდევ ცოცხალია, რადგან person2 მასზე მიუთითებს
person2 = nil // ახლა ობიექტი გათავისუფლებულია

ამ გზით, ARC ავტომატურად მუშაობს, მაგრამ გარეშე პაუზებისა და დამატებითი ხარჯების, რომლებიც ტრადიციულ გარაბიჯ კოლექციონერებს ახასიათებს.