Какова продолжительность жизни слабой (против сильной) ссылки на объект? - PullRequest
0 голосов
/ 24 октября 2018

Мне только что пришло в голову ... что я считаю, что жизнь слабой ссылки связана с областью действия этой ссылки (внутри функции или глобальной).

Так что мне интересно, пока я продолжаю обработку данных в определенной области, тогда я буду в порядке с использованием слабых против сильных ссылок.Правильный?

Причина, по которой я спрашиваю ... состоит в том, что мне сказали, что в одной организации существует политика сохранения блоков / закрытий "слабыми" по умолчанию, чтобы избежать случайных циклов сохранения.

1 Ответ

0 голосов
/ 25 октября 2018

одна организация имеет политику сохранения блоков / закрытий «слабыми» по умолчанию, чтобы избежать случайных циклов сохранения.

Вероятно, у организации есть политика хранения захваченных ссылокпо блокам «слабым», чтобы избежать сохранения циклов.Сами блоки, сохраняемые как свойства, копируются.

Существует очень специфическое обстоятельство, при котором блок вызывает цикл сохранения: блок ссылается на объект (себя или некоторый другой объект) и этот объект (напрямую иликосвенно) сохраняет блок.

Большую часть времени мы знаем из проверки, какой объект будет сохранять блок.Скажи, что это «объект А».Вопрос о цикле сохранения: какой-либо из объектов, упомянутых в блоке, прямо или косвенно сохраняет «объект А»?Эти объекты, и никакие другие , должны быть объявлены слабыми для использования в блоке.

Объявление их всех слабыми все время сделает свою работу, но, IMO, сделает будущих читателейиз этого кода беспокоятся, что авторы не имели четкого понимания своего собственного кода.

...