Как реализованы weak-ссылки в Swift?
Суть
weak не увеличивает strong-счётчик, поэтому не продлевает жизнь объекта и обязана быть Optional. Ключевой вопрос — как рантайм узнаёт, что объект умер, и как он это сообщает.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep