Sobes.tech
Junior — Middle

Оё дар лоиҳаҳои худ тағйирёбандаҳои истинодӣ ба монанди Unowned истифода бурдаед?

sobes.tech AI

Ҷавоб аз AI

Бале, дар лоиҳаҳои iOS ман тағйирёбандаҳои ишоракунӣ аз навъи unowned-ро истифода кардам.

unowned навъи ишоракунӣ-и заиф аст, ки ҳисобкунаки ишораҳоро зиёд намекунад, аммо тахмин мезанад, ки объекте, ки ба он ишора мекунад, ҳамеша дар вақти истифодаи ин ишора вуҷуд хоҳад дошт.

Ин барои пешгирии доираҳои ишоракунии қавӣ муфид аст, масалан, дар бастабандӣҳо ё дар ишораҳои мутақобил байни объектҳо, вақте ки як объект кафолат медиҳад, ки аз дигаре дарозтар зиндагӣ хоҳад кард.

Масалан, истифодаи unowned дар бастабандӣ:

class Person {
    let name: String
    var apartment: Apartment?
    
    init(name: String) {
        self.name = name
    }
}

class Apartment {
    let unit: String
    unowned let tenant: Person
    
    init(unit: String, tenant: Person) {
        self.unit = unit
        self.tenant = tenant
    }
}

let john = Person(name: "John")
let apt = Apartment(unit: "4A", tenant: john)
john.apartment = apt

Ин ҷо, tenant ҳамчун unowned эълон шудааст, зеро хона бояд бе иҷорагир вуҷуд надошта бошад, ва ин доираи ишоракунии қавиро пешгирӣ мекунад.