Карточка Middle ARC и циклы ссылок обновлено
Когда уместен unowned
Вопрос
Когда оправдан unowned, а не weak?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Когда объект по построению живёт не меньше ссылки: дочерний объект ссылается на владельца, который его создал и хранит (карта на клиента, ячейка лениво создаваемого свойства на self). Выигрыш: не нужен опционал и side table.
Ответ
Когда объект по построению живёт не меньше ссылки: дочерний объект ссылается на владельца, который его создал и хранит (карта на клиента, ячейка лениво создаваемого свойства на self). Выигрыш: не нужен опционал и side table.
Разбор
Если гарантии нет, это крэш в продакшене. По умолчанию выбирают weak.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Жизненный цикл объекта в Swift-рантайме
Следующий вопрос
Задача на Swift: какие объекты утекут из-за циклов ссылок
Ещё по теме «ARC и циклы ссылок»
- Когда нужен autoreleasepool в Swift
- Цикл ссылок через замыкание-свойство
- Почему делегат объявляют weak
- DispatchQueue.main.async и self
- Как найти утечку памяти в iOS-приложении
- Инструменты для поиска проблем с памятью
- Утечка через NotificationCenter
- Порядок событий при освобождении объекта