unowned — незаменяющая (non-optional) ссылка без retain: объект должен жить не меньше closure; иначе dangling → краш.
Разбор
weak безопаснее, когда lifetime неясен (UI, сеть).
unowned уместен при доказанном lifetime (child → parent, если parent владеет child).
- Не используйте
unowned «для удобства» без инварианта.
- В async-задачах чаще
weak.
Итог
unowned — производительность/удобство ценой жёсткого lifetime-контракта.