Сильные (strong), слабые (weak), безвладетельные (unowned).
- Strong: Создает владение объектом, предотвращая его деаллокацию, пока есть сильные ссылки.
- Weak: Не создает владение. Если объект, на который ссылается слабая ссылка, деаллоцируется, слабая ссылка автоматически становится nil. Используется для предотвращения циклов сильных ссылок, часто для ссылок на родительский объект или делегата.
- Unowned: Не создает владение. Подобна слабой ссылке, но гарантирует, что объект, на который она ссылается, будет существовать на протяжении всего жизненного цикла безвладетельной ссылки. Если попытаться получить доступ к объекту после его деаллокации, возникнет ошибка выполнения (краш). Используется, когда объекты имеют одинаковый или связанный жизненный цикл, и nil допустим, но не ожидается.
swift