Sobes.tech
Junior — Middle

გაგრძელებს თუ არა iOS ავტომატურ მეხსიერების გასუფთავებას რესურსების მართვისთვის?

sobes.tech AI

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

iOS კლასიკურ გაგებით მეხსიერების ავტომატური წმენდა არ იყენებს, მაგალითად, JavaScript-ის ან Java-ს გარბიჯის კოლექციონერს. ამის ნაცვლად, iOS იყენებს მეხსიერების მართვის სისტემას, რომელსაც ARC (Automatic Reference Counting) ეწოდება.

ARC ავტომატურად აკონტროლებს ობიექტებზე მიმაგრებული მითითებების რაოდენობას და მეხსიერებას თავისუფლდებს, როდესაც ობიექტი აღარ გამოიყენება. დეველოპერი არ წერს კოდს მეხსიერების ხელით გათავისუფლებისთვის, მაგრამ უნდა აკონტროლოს მითითებების სწორად მართვა, რათა თავიდან აიცილოს ციკლური დამოკიდებულებები, რომლებიც მეხსიერების გაჟონვას იწვევს.

ARC-ის გამოყენების მაგალითი:

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

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

ამ გზით, iOS ავტომატურად მართავს მეხსიერებას, მითითებების რაოდენობის საფუძველზე, არა ნაგვის შეგროვებით.