Как я понимаю, Swift использует автоматический подсчет ссылок для сбора мусора.
Это возвращает меня на многие годы, когда я был программистом COM.
VB6 (и раньше) автоматизировал процесс децинирования счетчика ссылок, когда объект вышел из сферы действия, большую часть времени это было достаточно, чтобы программист мог забыть об управлении памятью.
Однако, если между объектами были петли,.e.g
Car->WheelsCollection contains pointers to wheels
Wheel->CurrentCar constrains a pointer to the car the wheel is currently installed on
Тогда, когда экземпляр автомобиля вышел из сферы действия, это не будет сбор мусора, поскольку автомобиль сохранил свои колеса в живых, а колеса сохранили автомобиль в живых.
Какие шаблоны программистов или иным образом используются в Swift для предотвращения или устранения этой проблемы?