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

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

Модификатор 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("---")

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее