Junior — Middle
V jakých situacích se používá slabé odkaz na objekt?
sobes.tech AI
Odpověď od AI
Slabý odkaz (weak reference) v iOS se používá k prevenci cyklů silných odkazů (retain cycles), které mohou vést k únikům paměti. Nezvyšuje čítač odkazů na objekt, takže objekt může být uvolněn i při existenci slabých odkazů na něj.
Typické situace použití slabých odkazů:
- Delegáti: často jsou deklarováni jako
weak, aby se zabránilo cyklu mezi objektem a jeho delegátem. - Closure: pokud closure zachytí
self, aby se zabránilo cyklu, zachytíselfpomocí[weak self]. - Spojení mezi objekty, kde jeden objekt vlastní jiný, a druhý by měl mít odkaz bez vlastnictví.
Příklad s delegátem:
protocol SomeDelegate: AnyObject {
func didUpdate()
}
class SomeClass {
weak var delegate: SomeDelegate?
}
Tímto způsobem slabý odkaz pomáhá spravovat paměť a předcházet únikům.