Типы значения (struct, enum, tuple) хранятся в стеке. Копия данных создается при присваивании или передаче в функцию.
Ссылочные типы (class, func, Closure, Array, Dictionary, Set) хранятся в куче. В стеке хранится лишь ссылка на объект в куче. При присваивании или передаче копируется только ссылка, а не сам объект.
Пример структуры (тип значения):
swift
Пример класса (ссылочный тип):
swift