В Swift существуют три основных вида ссылок на экземпляры классов:
Сильная ссылка (Strong Reference):
strong reference cycles).swift
Слабая ссылка (Weak Reference):
weak.strong reference cycles.Optional), потому что объект, на который указывает слабая ссылка, может быть деинициализирован в любое время. При деинициализации объекта слабая ссылка автоматически становится nil.swift
Бесхозная ссылка (Unowned Reference):
unowned.strong reference cycles.weak, не является опциональной (Optional) и предполагает, что объект, на который она указывает, будет существовать в течение всего "срока жизни" бесхозной ссылки.unowned ссылка, деинициализируется до того, как unowned ссылка станет недействительной, произойдет ошибка выполнения (runtime error).swift
Ключевое различие между weak и unowned:
weak: объект может быть nil. Используйте, когда срок жизни объектов не связан строго (один может существовать без другого).unowned: объект не может быть nil после инициализации. Используйте, когда вы уверены, что ссылаемый объект будет существовать как минимум до тех пор, пока существует ссылающийся объект.