Назад к вопросам
Junior
76
questionbank

Что такое модификаторы памяти strong?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Модификатор strong в Swift указывает, что ссылка на объект увеличивает счетчик ссылок на этот объект на единицу. Это означает, что объект будет храниться в памяти до тех пор, пока существует хотя бы одна сильная ссылка на него.

Используется по умолчанию для ссылочных типов (классов). Присваивание nil к переменной с модификатором strong уменьшает счетчик ссылок. Когда счетчик ссылок становится равным нулю, объект освобождается из памяти.

Пример:

class Person {
    var name: String
    init(name: String) {
        self.name = name
        print("\(name) is being initialized")
    }
    deinit {
        print("\(name) is being deinitialized")
    }
}

var reference1: Person?
var reference2: Person?

reference1 = Person(name: "Alice") // Счет1к ссылок на Alice: 1
reference2 = reference1           // Счет1к ссылок на Alice: 2

reference1 = nil                   // Счет1к ссылок на Alice: 1
reference2 = nil                   // Счет1к ссылок на Alice: 0, Alice деинициализируется