Ссылается на объект в куче, но эта ссылка не учитывается при подсчет ссылок, когда объект освобождается из памяти weak ссылка установливается в nil (обозначая что объект уже освободился из памяти). Соответственно weak ссылки принадлежит к типу Optional так как могут установлены в nil.
//Captures a weak reference to self
var myVariable = { [ weak self ] in
return self.myProp * 3
}()
Есть еще одна важная вещь о слабых ссылках: после освобождения экземпляра соответствующая переменная станет нулевой (nil). Это хорошо, потому что если мы получим доступ к переменной, указывающей куда-то, где не осталось ни одного экземпляра. Поскольку только опциональные переменные могут стать нулевыми, каждая слабая переменная должна быть необязательной.
Как только мы начинаем ссылаться на объект слабо weak reference, то создается боковая таблица или side table, и теперь объект вместо сильного счетчика ссылок хранит ссылку на боковую таблицу. Сама боковая таблица также имеет ссылку на объект.
Мы устанавливаем weak
ссылку на тот объект, который может уйти из памяти раньше, т.е. время жизни этого объекта должно быть меньше, чем время жизни объекта из которого мы обращаемся к weak
Мы устанавливаем unowned ссылку на тот обхект, чье время жизни >= времени жизни объекта из которого мы вызываем unowned
3.1.3.1.4.3 Unowned Reference Theme | Back To iOSWiki Contents | 3.1.3.1.4.5 Side Tables Theme