Sobes.tech
Junior — Middle

როდის ხდება ობიექტის მიერ დაკავებული მეხსიერების გათავისუფლება?

sobes.tech AI

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

iOS-ში, ობიექტის მეხსიერების განთავისუფლება ხდება მაშინ, როდესაც ამ ობიექტის (retain count) მიმთითებლების რაოდენობა მიაღწევს ნულს. ეს ნიშნავს, რომ აღარავინ მიუთითებს ამ ობიექტზე, და სისტემა შეუძლია განთავისუფლოს მისი დაკავებული მეხსიერება.

მოდერნულ აპლიკაციებში გამოიყენება ARC (Automatic Reference Counting), რომელიც ავტომატურად ზრდის და მცირედით ამცირებს მიმთითებლების რაოდენობას ობიექტზე მიბმის და მისი წაშლის დროს.

მაგალითი:

class MyClass {}

var obj: MyClass? = MyClass() // მიმთითებლების რაოდენობა = 1
obj = nil // მიმთითებლების რაოდენობა = 0, ობიექტი განთავისუფლებულია

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