Sobes.tech
Junior — Middle

როგორ ხორციელდება რესურსების მართვა Reference მონაცემთა ტიპისთვის სისტემაში?

sobes.tech AI

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

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

მაგალითი:

class MyClass {
    var value: Int
    init(value: Int) {
        self.value = value
    }
}

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

ამ გზით, ARC ეხმარება მეხსიერების ეფექტიან მართვას, რესურსების ხელით გათავისუფლების საჭიროების გარეშე.