Sobes.tech
Junior — Middle

Чӣ гуна метавон дар забони барномасозӣ истиноди заиф сохт?

sobes.tech AI

Ҷавоб аз AI

Дар iOS (Swift) барои эҷоди истиноди заиф калидвожаи weak истифода мешавад. Истиноди заиф шумораи истинодҳоро ба объект зиёд намекунад, ки кӯмак мекунад, ки гирдоби нигоҳдорӣ ва сӯхтани хотира пешгирӣ карда шавад.

Масалан:

class Person {
    var name: String
    weak var apartment: Apartment? // истиноди заиф

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

class Apartment {
    let unit: String
    var tenant: Person? // истиноди қавӣ

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

// Истифода:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john

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

Мухим: истинодҳои заиф бояд интихобӣ бошанд (?), зеро объекте, ки ба онҳо ишора мекунад, метавонад нест карда шавад.