Middle — Middle+
Може ли се слабa референца сматрати опционалном или се понаша другачије?
sobes.tech АИ
Одговор од АИ
Slaba referenca u Swift-u je referenca koja ne povećava brojač referenci objekta na koji ukazuje. Uvek se deklarise kao opcionalna, jer objekat na koji se odnosi može biti uklonjen iz memorije, i tada slaba referenca automatski postaje nil.
To znači da se slaba referenca ponaša kao opcional: može sadržavati vrednost ili nil. Ovo je važno da se izbegne pristup već oslobođenom objektu.
Primer:
class Person {
var name: String
init(name: String) { self.name = name }
}
var person: Person? = Person(name: "Alex")
weak var weakPerson: Person? = person
print(weakPerson?.name) // Optional("Alex")
person = nil
print(weakPerson?.name) // nil, jer je objekat uklonjen
Tako, slaba referenca je uvek opcionalna i automatski postaje nil kada se objekat ukloni.