Junior — Middle
Dasturlash tilida zaif havolani qanday qilish mumkin?
sobes.tech AI
AIdan javob
iOS (Swift) da yaratish uchun zaif havolani weak kalit so'zi ishlatiladi. Zaif havola ob'ektning havola hisoblagichini oshirmaydi, bu esa ushlab qolish sikllarini va xotira oqib ketishini oldini olishga yordam beradi.
Misol:
class Person {
var name: String
weak var apartment: Apartment? // zaif havola
init(name: String) {
self.name = name
}
}
class Apartment {
let unit: String
var tenant: Person? // kuchli havola
init(unit: String) {
self.unit = unit
}
}
// Foydalanish:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john
Ushbu misolda, Person Apartment ga zaif havola bilan bog'langan, bu esa Person va Apartment o'rtasidagi ushlab qolish siklini oldini oladi. Agar ikkalasi ham kuchli bo'lsa, ob'ektlar xotiradan chiqarilmaydi.
Muhim: zaif havolalar opsional bo'lishi kerak (?), chunki ular bilan bog'langan ob'ekt o'chirilishi mumkin.