Junior — Middle
როდის ხდება მყარი მიმთითვლების გამოთვლის მიერ მითითებული ობიექტის ავტომატური გათავისუფლება და ის ხელმისაწვდომი ხდება?
sobes.tech AI
პასუხი AI-სგან
ძლიერი მითითებებით ობიექტის მეხსიერების ავტომატური გათავისუფლება ხდება, როდესაც ამ ობიექტზე ძლიერი მითითებების გამრიცხველის რაოდენობა ნულზე იწევს, ანუ აღარ არსებობს ძლიერი მითითება, რომელიც ობიექტს მიუთითებს.
ამ მომენტში, ობიექტი ხდება მიუწვდომელი და შეიძლება იყოს ამოღებული მეხსიერების მართვის სისტემის მიერ (iOS-ში ARC). თუ მინიმუმ ერთი ძლიერი მითითება არსებობს, ობიექტი რჩება მეხსიერებაში.
მაგალითი:
class MyClass {}
var a: MyClass? = MyClass() // ძლიერი მითითებების გამრიცხველის რაოდენობა = 1
var b = a // ძლიერი მითითებების გამრიცხველის რაოდენობა = 2
a = nil // ძლიერი მითითებების გამრიცხველის რაოდენობა = 1
b = nil // ძლიერი მითითებების გამრიცხველის რაოდენობა = 0, ობიექტი გათავისუფლებულია
ამ გზით, მეხსიერების გათავისუფლება ხდება ავტომატურად, როდესაც ობიექტი აღარ არის საჭირო და მასზე აღარ არის ძლიერი მითითებები.