Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
weak
и unowned
используются для разрешения циклических ссылок, но отличаются по своему поведению и применению.
Свойство | 'weak' | 'unowned' |
---|---|---|
Тип | Опционал (Optional) | Не опционал |
Lifetime | Может стать nil | Гарантированно имеет значение |
Гарантия существования | Нет | Да, до окончания Scope |
Применение | Когда возможна ситуация, что связанный объект будет деаллоцирован первым. | Когда связанный объект будет деаллоцирован либо одновременно с текущим, либо позже. |
Пример | Делегат (delegate) | Связь Родитель-Ребенок (Parent-Child) |
weak:
nil
.nil
, когда объект, на который он ссылается, деаллоцируется.swift
weak
и unowned
используются для разрешения циклических ссылок, но отличаются по своему поведению и применению.
Свойство | 'weak' | 'unowned' |
---|---|---|
Тип | Опционал (Optional) | Не опционал |
Lifetime | Может стать nil | Гарантированно имеет значение |
Гарантия существования | Нет | Да, до окончания Scope |
Применение | Когда возможна ситуация, что связанный объект будет деаллоцирован первым. | Когда связанный объект будет деаллоцирован либо одновременно с текущим, либо позже. |
Пример | Делегат (delegate) | Связь Родитель-Ребенок (Parent-Child) |
weak:
nil
.nil
, когда объект, на который он ссылается, деаллоцируется.swift
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.