В Swift strong — это ссылка по умолчанию. Она удерживает объект в памяти до тех пор, пока на него есть хотя бы одна strong ссылка.
weak — это слабая ссылка. Она не удерживает объект в памяти и может стать nil, если на объект больше нет strong ссылок. Используется для предотвращения сильных циклов ссылок, например, между родительским и дочерним объектами.
strong: Увеличивает счетчик ссылок.weak: Не увеличивает счетчик ссылок.Пример сильного цикла:
swift
Пример с использованием weak для разрыва цикла:
swift