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

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

Sobes Copilot

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

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

sobes.tech AI

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

Пример:

class MyClass {
    var name: String = ""

    init(name: String) {
        self.name = name
        print("Объект '\(name)' создан")
    }

    deinit {
        print("Объект '\(name)' деаллоцирован")
    }
}

// strong ссылка
var obj1: MyClass? = MyClass(name: "Первый")
// Другая strong ссылка
var obj2: MyClass? = obj1

print("---")

// Обнуление одной ссылки не приводит к деаллокации
obj1 = nil
print("---")

// Обнуление последней strong ссылки приводит к деаллокации
obj2 = nil
print("---")