Будет ли сохранен в памяти объект, на который нет сильной (strong) ссылки в Swift?

«Будет ли сохранен в памяти объект, на который нет сильной (strong) ссылки в Swift?» — вопрос из категории Управление памятью, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, объект будет немедленно уничтожен ARC (Automatic Reference Counting).

Принцип работы ARC: Система подсчитывает сильные ссылки на объект. Когда счетчик достигает нуля, память освобождается.

Пример:

class MyClass {
    init() { print("Объект создан") }
    deinit { print("Объект уничтожен") }
}

func createTemporaryObject() {
    // Объект создается, но на него нет сильной ссылки.
    // Счетчик ссылок остается 0, и ARC уничтожает его сразу после создания.
    _ = MyClass()
}

createTemporaryObject()
// Консоль:
// Объект создан
// Объект уничтожен

Ключевой вывод: Для существования объекта в памяти необходима хотя бы одна активная сильная ссылка (например, присвоение переменной, добавление в массив).