Swift использует «Автоматический подсчет ссылок», чтобы освободить объекты, которые больше не ссылаются и, следовательно, больше не нужны. языка руководство Swift [1] говорится следующее:Возможность переполнения ARC в Swift?
Каждый раз, когда вы создаете новый экземпляр класса, ARC выделяет блок памяти для хранения информации об этом случае. В этой памяти хранится информация о [...] значениях любых хранимых свойств, связанных с этим экземпляром.
Я предполагаю, что счетчик ссылок хранится как целое число. Может ли контрольный счетчик пострадать от переполнения? Если это так, какие последствия у меня будет в моей программе, будут ли объекты, все еще получающие ссылку другими, просто освобождаются?
В качестве примера: если счетчик был, скажем, беззнаковым 2 байтовым целым, это поставило бы верхний предел ссылок на объект (при все еще правильном подсчете ссылок) около 130 тыс. Как только этот верхний предел достигнут, и объект получит ссылку еще раз, это увеличит счетчик на единицу, снова установив его в 0.
4294967296 ссылки? Wowz. У вас даже есть достаточно памяти для этого? – Zizouz212
Я знаю, что вопрос довольно гипотетический, поведение в этом случае все равно интересовало бы меня;) – Benjamin