Делегаты должны (обычно: редактировать) всегда быть слабыми.
Допустим, b
является делегатом a
. Теперь свойство a
delegate
является b
.
В случае, когда вы хотите b
отпустить, когда c
ушел
Если c
содержит сильную ссылку на освобождение b
и c
, вы хотите, чтобы b
освобождался от c
. Однако, используя сильное свойство делегирования в a
, b
никогда не будет освобождено, поскольку a
сильно удерживает b
. Используя слабую ссылку, как только b
потеряет сильную ссылку из c
, b
отключится, когда c
отменяется.
Обычно это предполагаемое поведение, поэтому вы хотите использовать свойство weak
.
Проблема решена. Мне потребовалось некоторое время, чтобы понять, что мне нужно было загрузить не-питоническое программное обеспечение, прежде чем я смог заставить питонское программное обеспечение работать.
brew install graphviz
Был шаг 1, и я делал это раньше, но я получал сообщение об ошибке. Он сказал мне, чтобы изменить владельца некоторых файлов, поэтому я сделал это. Затем снова попробовал
brew install graphviz
, и это помогло.
Диагностика говорит, что dot
нет в вашем $ PATH, оно не появляется ни в одном из каталогов, упомянутых этим env var. Вы хотите добраться до точки, где связывание следующей команды сообщает о некотором номере версии:
$ dot -V
dot - graphviz version 2.40.1 (20161225.0304)
$
$ which dot
/usr/local/bin/dot
$
$ echo $PATH | tr : ' ' | fmt -w1 | grep local
/usr/local/bin
Если вы еще не используете Brew, вам следует. Это самый простой способ установить эту и многие другие программы на ваш Mac. Посетите https://brew.sh/ и следуйте инструкциям. Затем введите:
$ brew install graphviz
...
$ /usr/local/bin/dot -V
Это должно работать просто отлично. Если dot -V
говорит «не найден», то просто добавьте соответствующий каталог к вашей переменной PATH:
$ export PATH="${PATH}:/usr/local/bin"
Если ваша оболочка bash может запустить ее, то ваша программа на python также должна это делать. [119 ]