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 деп жарыяланган, анткени батир жалдачсыз болбошу керек жана бул күчтүү шилтемелер циклин алдын алат.