Я бы посоветовал перечитать вступительные руководства, так как вы, кажется, немного сбились с пути; обдумывая основы. Ничего страшного, мы все были там (все еще там, когда сталкиваемся с новыми вещами, часто!).
Во-первых, для любого строкового значения скопируйте его. С точки зрения свойств, которые вы должны использовать, вы хотели бы:
@property(copy) NSString *myString;
Убедитесь, что вы -release
myString
в вашем -dealloc
методе.
Для других типов значений это действительно зависит от контекста. Копирование часто является безопасным маршрутом. Случаи NSDate
и NSNumber
оказываются неизменяемыми, поэтому копии не имеют значения, но бесплатны.
Что касается сохранения данных, вы полуправильны. Указатели не остаются действительными / одинаковыми при выполнении сеансов с вашим приложением. Если вам нужно сохранить данные, вы явно делаете это с помощью любого из ряда общих механизмов. Для предельно простых данных в полностью недокументированной, специфичной для приложения роли может быть достаточно пользовательских настроек по умолчанию. В противном случае см. Документацию по архивированию данных.