Junior — Middle
Jak można zrobić słabe odniesienie w języku programowania?
sobes.tech AI
Odpowiedź od AI
W iOS (Swift) do tworzenia słabej referencji używa się słowa kluczowego weak. Słaba referencja nie zwiększa licznika odwołań do obiektu, co pomaga unikać cykli zatrzymania i wycieków pamięci.
Przykład:
class Person {
var name: String
weak var apartment: Apartment? // słaba referencja
init(name: String) {
self.name = name
}
}
class Apartment {
let unit: String
var tenant: Person? // silna referencja
init(unit: String) {
self.unit = unit
}
}
// Użycie:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john
W tym przykładzie Person zawiera słabą referencję do Apartment, aby uniknąć cyklu zatrzymania między Person a Apartment. Gdyby obie referencje były silne, obiekty nie zostałyby zwolnione z pamięci.
Ważne: słabe referencje powinny być opcjonalne (?), ponieważ obiekt, na który się odwołują, może zostać usunięty.