Обязательно ли все типы данных, хранящие значения, используют механизм копирования при присвоении или передаче?
Не все типы данных используют механизм копирования при присвоении или передаче. В iOS (и Swift) различают типы значений (value types) и ссылочные типы (reference types).
Читать ответ