При использовании слабой ссылки на объект в Swift и помещая его в массив, он теряет все значения свойств [duplicate]

Другой способ взглянуть на это: Используются 64 бита для представления чисел. Как следствие, не может быть представлено более 2 ** 64 = 18 446 744 073 709 551 616 различных чисел.

Тем не менее, Math говорит, что существует уже бесконечное число десятичных знаков между 0 и 1. IEE 754 определяет кодировку для эффективного использования этих 64 бит для гораздо большего количества пробелов плюс NaN и +/- Infinity, поэтому есть пробелы между точно представленными числами, заполненными числами, только приближены.

К сожалению, 0,3 сидит в промежутке.

0
задан Mohammadalijf 26 February 2016 в 01:47
поделиться

1 ответ

Слабое свойство становится равным нулю, как только нет других сильных ссылок на значение, которое оно имеет.

Таким образом, у вас слабое свойство содержит единственную ссылку на экземпляр альбома, и оно сразу становится нулевым после присвоения.

Исправление будет зависеть от способа использования / создания ваших данных. Если альбом хранит ссылки на его песни, тогда вы должны сначала создать и сохранить альбомный объект, а затем использовать его для инициализации своих песен. Если у альбома нет ссылок на его песни (что, вероятно, было бы странно), тогда вы можете просто сделать переменную альбома сильной.

4
ответ дан Vladimir 27 August 2018 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: