Каков срок жизни слабой (по сравнению с сильной) объектной ссылки?

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

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

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

Это вопрос Swift или Objective-C, и если вы пытаетесь выделить все заглавные слова, есть лучшие способы, такие как курсив или жирный, см. stackoverflow.com/help/formatting

Joakim Danielson 24.10.2018 23:03

Для обоих языков. Это просто абстрактный вопрос. Имеет смысл; обычно я бы так и поступил. Выполнено.

Frederick C. Lee 24.10.2018 23:32

В ObjC ссылки weak действительны только до тех пор, пока объект остается жизнеспособным. Это может быть до конца области, а может и нет. Если вы выполните weakVar = [[NSObject alloc] init];, объект будет немедленно освобожден, и компилятор, например, предупредит.

bbum 25.10.2018 00:25

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

Frederick C. Lee 25.10.2018 09:45
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
68
1

Ответы 1

one organization has a policy of keeping blocks/closure 'weak' by default to avoid accidental retain cycles.

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

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

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

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

заставит будущих читателей этого кода волноваться, что авторы не имеют четкого представления о собственном коде, или если это младший разработчик, он / она может подумать, что это просто необходимо. Конечным результатом будет неправильный сдвиг парадигмы!
Honey 25.10.2018 02:35

Другие вопросы по теме