Как скопировать объекты в ivars для дальнейшего использования? - PullRequest
0 голосов
/ 15 февраля 2010

Цель c | xcode | вопрос по iphone

Я создаю класс модели (данных) для денежной транзакции и задаю вопрос типа noob, касающийся указателей и копирования объектов. Класс Transaction, который я создаю, содержит 4 или 5 ivars / properties, которые представляют переменные типа объекта. теперь, когда я получаю введенные пользователем данные от контроллера представления для заполнения этих иваров, безопасно ли использовать указатели или мне нужно сделать копию объекта и затем назначить это ивару?

Поскольку мне нужно будет хранить эти транзакции после того, как пользователь выйдет из программы, я предполагаю, что любые ссылки, которые я делал на указатели в предыдущем сеансе, будут по существу неработающими ссылками. Я ошибаюсь здесь, любое объяснение и, возможно, некоторые примеры кода будут оценены.

Если у вас есть предложения относительно того, как хранить данные, когда приложение не используется, это также будет полезно.

Большое спасибо,

Ник

1 Ответ

1 голос
/ 15 февраля 2010

Я бы посоветовал перечитать вступительные руководства, так как вы, кажется, немного сбились с пути; обдумывая основы. Ничего страшного, мы все были там (все еще там, когда сталкиваемся с новыми вещами, часто!).

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

@property(copy) NSString *myString;

Убедитесь, что вы -release myString в вашем -dealloc методе.

Для других типов значений это действительно зависит от контекста. Копирование часто является безопасным маршрутом. Случаи NSDate и NSNumber оказываются неизменяемыми, поэтому копии не имеют значения, но бесплатны.

Что касается сохранения данных, вы полуправильны. Указатели не остаются действительными / одинаковыми при выполнении сеансов с вашим приложением. Если вам нужно сохранить данные, вы явно делаете это с помощью любого из ряда общих механизмов. Для предельно простых данных в полностью недокументированной, специфичной для приложения роли может быть достаточно пользовательских настроек по умолчанию. В противном случае см. Документацию по архивированию данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...