В каком месте будет размещена структура, если внутри неё есть поле, являющееся экземпляром класса?

В iOS, если структура (struct) содержит в себе поле, которое является экземпляром класса (class), то сама структура размещается в стеке, а поле-класс — в куче.

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

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

В iOS, если структура (struct) содержит в себе поле, которое является экземпляром класса (class), то сама структура размещается в стеке, а поле-класс — в куче.

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

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

В iOS, если структура (struct) содержит в себе поле, которое является экземпляром класса (class), то сама структура размещается в стеке, а поле-класс — в куче.

Это связано с тем, что структуры — это типы значений, которые хранятся непосредственно там, где объявлены (обычно в стеке), а классы — ссылочные типы, объекты которых размещаются в куче, а в структуре хранится только ссылка на этот объект.

Пример:

class MyClass {
    var value: Int
    init(value: Int) {
        self.value = value
    }
}

struct MyStruct {
    var obj: MyClass
}

var s = MyStruct(obj: MyClass(value: 10))

Здесь s — структура, размещённая в стеке, а объект MyClass(value: 10) — в куче, а в s.obj хранится ссылка на этот объект.

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

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

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

Подробнее