Поиогите разобраться


#1

Всем доброго!
Даже не знаю как правильно сформулировать тему :wink:
Суть вопроса в том, что после обновления на xcode 9 (swift 4) появились странности (в моем понимании) не то что бы важно, но зацепило :wink:
Вот первый скрин:


стр. 33, как видите инициализация делегата не происходит, а вот если: стр 32 убрать коммент, и эту константу передать в стр 33 параметром, то все ОК… формально ничего не поменялось - почему так?
ps: в 8.3.3 (3.1) - работало без константы - просто в параметр передавал новый объект.
pps: пример я специально упростил и вынес в плейгроунд, но ошибка (а так думаю) воспроизвелась. Может я ошибаюсь? ибо “чайник” еще ;)))


#2

У вас слабая ссылка на делегат (weak var) и PlantTool() сразу же выгружается из памяти, let planTool (строка 32) сильная ссылка, она и держит делегат в памяти.


#3

Да! действительно! спасибо за помощь … проверил - все как Вы объяснили… сколько же еще “грызть” надо! :slight_smile: