Возможно, мне не хватает чего-то очевидного, но я реализую NSCopying на одном из моих объектов. Этот объект имеет частные переменные экземпляра, которые не отображаются через геттеры, поскольку они не должны использоваться вне объекта.Лучшая практика для копирования частных экземпляров vars с NSCopying
В моей реализации copyWithZone:
мне нужно выделить/инициализировать новый экземпляр, но также настроить его состояние для соответствия текущему экземпляру. Я, очевидно, могу получить доступ к текущему частному состоянию изнутри copyWithZone:
, но я не могу установить его в новый объект, потому что для этого состояния нет аксессуаров.
Есть ли стандартный способ обойти это, сохранив при этом конфиденциальность данных?
Спасибо.
Благодарим за упоминание о частных аксессуарах, а также о рисках NSCopyObject. –
Я не уверен, как использование readonly-аксессуаров помогает управлению памятью? Если вы не используете его с 'assign' или' keep', не имеет значения, используете ли вы getter или переменную напрямую. – Hemant
@ Gemant, потому что вызывающему абоненту не нужно быть осторожным в отношении того, является ли свойство в настоящее время (или в будущем) readonly или нет. Это не дело звонящего, и со временем это может измениться, и тогда вам нужно будет выследить каждый фрагмент кода, который сделал это неправильно. Придерживаясь простых правил, ошибки становятся очевидными. Когда вы говорите «о, если только я не знаю, что это нормально, тогда вы начинаете заниматься головными болями. –