Sobes.tech
Junior — Middle

Објасните зашто одсуство вредности у слабој референцији не изазива грешке или непожељне последице у вашој апликацији.

sobes.tech АИ

Одговор од АИ

Slaba referenca (weak reference) u iOS ne drži objekat u memoriji, pa kada na objekat više nema jakih referenci, on može biti oslobođen od strane sakupljača smeća (ARC). Nedostatak vrednosti u slabo referenciranom pokazivaču znači da je objekat već uklonjen, i to ne izaziva greške ako se pravilno proveri prisustvo objekta pre korišćenja. Obično se slabe reference koriste za sprečavanje cikličkih referenci, na primer, kod delegata:

class DelegateHolder {
    weak var delegate: SomeDelegate?
}

Ako je objekat delegata uklonjen, delegate će postati nil, i to se sigurno obrađuje u kodu.