Назад к вопросам
Junior — Middle
75
Какое поведение ожидается при объявлении переменной user с использованием слабой ссылки через weak var user = User()?
Ответ от нейросети
sobes.tech AI
В Swift объявление переменной с помощью weak var user = User() создаёт слабую ссылку на объект User. Это значит, что ссылка не увеличивает счётчик ссылок объекта, и если больше нет сильных ссылок на этот объект, он будет деинициализирован (удалён из памяти).
В данном случае, если user — единственная ссылка на объект User, то сразу после создания объект будет освобождён, а user станет равен nil.
Пример:
class User {}
weak var user = User() // user сразу станет nil, так как нет сильных ссылок
print(user) // nil
Поэтому слабые ссылки обычно объявляют как опциональные (weak var user: User?), и они используются для предотвращения циклов удержания, например, в делегатах.