Sobes.tech
Junior — Middle

Proqramlaşdırma dilində zəif istinad necə edilə bilər?

sobes.tech Süni İntellekt

AI-dan cavab

iOS (Swift)-də zəif istinad yaratmaq üçün weak açar sözü istifadə olunur. Zəif istinad obyektin istinad sayğacını artırmır, bu da tutma döngülərini və yaddaş sızmalarını qarşısını almağa kömək edir.

Nümunə:

class Person {
    var name: String
    weak var apartment: Apartment? // zəif istinad

    init(name: String) {
        self.name = name
    }
}

class Apartment {
    let unit: String
    var tenant: Person? // güclü istinad

    init(unit: String) {
        self.unit = unit
    }
}

// İstifadə:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john

Bu nümunədə, Person Apartment-a zəif istinad ilə bağlıdır, bu da PersonApartment arasında tutma döngüsünü qarşısını alır. Əgər hər iki istinad güclü olsaydı, obyektlər yaddaşdan azad olunmazdı.

Vacib: zəif istinadlar opsional olmalıdır (?), çünki onlara istinad edən obyekt silinə bilər.