Back to questions
Junior — Middle
79
В каких ситуациях используется слабая ссылка на объект?
Answer from AI
sobes.tech AI
Слабая ссылка (weak reference) в iOS используется для предотвращения циклов сильных ссылок (retain cycles), которые могут привести к утечкам памяти. Она не увеличивает счетчик ссылок на объект, поэтому объект может быть освобожден, даже если на него есть слабые ссылки.
Типичные ситуации использования слабых ссылок:
- Делегаты: часто делегат объявляют как
weak, чтобы избежать цикла между объектом и его делегатом. - Замыкания (closures): если замыкание захватывает
self, чтобы избежать цикла,selfзахватывают с помощью[weak self]. - Связи между объектами, где один объект владеет другим, а другой должен иметь ссылку без владения.
Пример с делегатом:
protocol SomeDelegate: AnyObject {
func didUpdate()
}
class SomeClass {
weak var delegate: SomeDelegate?
}
Таким образом, слабая ссылка помогает управлять памятью и предотвращать утечки.