Если еще остались вопросы, как это на самом деле работает, то пример на пальцах:
1 - У вас машина и документ на эту машину.
2 - Вы делаете копию этого документа и в итоге у вас ДВА документа на ОДНУ машину. Ничего существенно не изменилось
3 - Вы отдаете копию документа своему другу, он может точно так же, как и вы владеть одной конкретной машиной
4 - Ваш друг захотел что-то изменить в машине, к примеру тонировку, в этот момент ваша машина раздваивается, создается две одинаковые копии и на второй копии ваш друг тонирует окна и теперь в природе существуют две машины. Ваши документы предоставляют вам доступ к изначальной машине, документы ваше друга, но затонированную машину.
Кcтати, кроме коллекций тип Data тоже поддерживает CoW.
Никто, конечно, не просил, но хотелось поделиться и теперь надеюсь будет понимание того, что такое CoW и как на самом деле работают коллекции, так же это частый вопрос на собесах.
Если интересны подобные материалы по памяти в swift пишите тут в коменты свои варианты, постараюсь разобрать.
Post #525
400
- ❤ 9