Проверяет понимание того, где размещаются объекты классов (reference types) и можно ли обойтись без кучи.
Обычно — нет. Reference types всегда размещаются в куче, а в стеке лежит только ссылка на них.
Классы (class) всегда создаются в куче, даже если объявлены как локальные переменные.
В стеке хранится лишь указатель (reference) на объект.
Пример:
class Dog { var name = "Barky" }
let dog = Dog()
// dog — переменная на стеке, но сам объект в кучеИсключения:
Swift не предоставляет способа разместить reference type в стеке напрямую. Это сделано ради контроля над временем жизни (ARC).