Во-первых, у вас всегда должны быть добытчики, даже если они частные. Ваш объект должен иметь доступ только к своим собственным иварам, используя аксессоры (за исключением очень небольшого числа случаев). Это избавит вас от многих проблем, связанных с управлением памятью.
Во-вторых, предложение Алекса об использовании -> является стандартным подходом, даже если это нарушает приведенное выше правило получения. Есть небольшое количество исключений из этого правила, и копия является одним из. Использование частных сеттеров здесь все еще целесообразно (и я делал это исключительно так), но я обнаружил, что по разным причинам использование -> часто работает чище.
Будьте очень осторожны, чтобы правильно настроить управление памятью. Если вам нужно позвонить по номеру [super copyWithZone:]
, вам следует также прочитать о сложностях NSCopyObject()
и о том, как это повлияет на вас, даже если вы сами его не используете. Я подробно обсуждал это в «NSCopyObject () считается вредным».