Sobes.tech
Junior — Middle

Kuidas teha nõrk viide programmeerimiskeeles?

sobes.tech AI

Vastus AI-lt

iOS (Swift) keskkonnas kasutatakse nõrga viite loomiseks märksõna weak. Nõrk viide ei suurenda objekti viidete loendurit, mis aitab vältida hoidmistsüklit ja mälulekkeid.

Näide:

class Person {
    var name: String
    weak var apartment: Apartment? // nõrk viide

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

class Apartment {
    let unit: String
    var tenant: Person? // tugev viide

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

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

Selles näites sisaldab Person nõrka viidet Apartment-ile, et vältida hoidmis-tsüklit Person ja Apartment vahel. Kui mõlemad viited oleksid tugevad, ei vabastataks objektid mälust.

Oluline: nõrgad viited peaksid olema valikulised (?), kuna viidatud objekt võib olla kustutatud.