Sobes.tech
Junior — Middle

Swift-ში როდის უნდა გამოიყენოთ `unowned` საკვანძო სიტყვა?

sobes.tech AI

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

Swift-ში unowned საკვანძო სიტყვა გამოიყენება სუსტი მითითების გამოცხადებისთვის, რომელიც არ არის ოპციონალური და არ ზრდის ობიექტის მითითებების გამრიცხველს.

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

მაგალითად, "მშობელი — შვილი" ურთიერთობებში, სადაც შვილი ინახავს unowned მითითებას მშობელზე ციკლის თავიდან ასაცილებლად:

class Parent {
    var child: Child?
}

class Child {
    unowned let parent: Parent
    init(parent: Parent) {
        self.parent = parent
    }
}

let dad = Parent()
let kid = Child(parent: dad)
dad.child = kid

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