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 эълон шудааст, зеро хона бояд бе иҷорагир вуҷуд надошта бошад, ва ин доираи ишоракунии қавиро пешгирӣ мекунад.