Unowned reference (слабое косвенное владение) в Swift используется для избежания циклов сильного владения (retain cycles), когда два объекта сильно ссылаются друг на друга, предотвращая их освобождение из памяти.
Особенности unowned:
unowned ссылка, всегда существует до момента использования этой ссылки.unowned ссылке после того, как связанный объект освобожден, произойдет ошибка времени выполнения (runtime crash).unowned не делает объект сильнее.Пример использования в захвате замыкания:
swift
Другой пример - использование unowned в списке захвата замыкания:
swift
Выбор между unowned и weak зависит от того, может ли ссылка быть nil в процессе жизни объекта. Если ссылка никогда не может стать nil до освобождения объекта, используйте unowned. Если может - используйте weak.