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