В блоге разработчика Apple Swift есть сообщение с именем Value и Reference Types , в котором дается четкое и подробное обсуждение этой темы.
Цитируя:
Типы в Swift попадают в одну из двух категорий: во-первых, «типы значений», где каждый экземпляр хранит уникальную копию своих данных, обычно определяемую как структура, перечисление или кортеж. Во-вторых, «ссылочные типы», где экземпляры используют одну копию данных, а тип обычно определяется как класс.
blockquote>
Сообщение в блоге Swift продолжает объяснять различия с примерами и предлагает, когда вы будете использовать один над другим.