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
Register or sign in to get access to full answers for all questions from the question bank.