2010-08-27 5 views
0

Мне нужен способ создания переменных, которые доступны за все время запуска моего пользовательского класса, когда я вызываю функцию release. Мне нужно сохранить NSDate и NSString.Как я могу убедиться, что ничто не получает автореализацию?

+1

Тогда сохраните их! – BoltClock

ответ

1

Do [myObject retain] или @property(nonatomic, retain) MyClass *myObject;

1

Autorelease просто выстреливает -release сообщение на более позднее время. Если вы хотите, чтобы ваши переменные зависали, воспользуйтесь им, когда они назначены. Даже если они будут автореализованы, ваше сохранение увеличит значение keepCount, поэтому они не будут отменены. Просто будьте уверены - освободите их в ВАШЕМ dealloc.

+0

У меня есть строка и дата, должен ли я иметь метод init в своем классе, чтобы отправить им сохранение? – Chris

+0

Вы можете сохранить их везде, где вы сначала инициализировали, назначали или использовали их. До этого ваши объекты экземпляра - все указатели nil. – hotpaw2

0

Дайте ваш пользовательский класс сохраняет свойства для каждой переменной в его файле заголовка:

@property (nonatomic, retain) NSDate *myDate; 
@property (nonatomic, retain) NSString *myString; 

Будьте уверены, чтобы создать надлежащие сеттеров и добытчиками, или использовать @synthesize, в файле реализации:

@synthesize myDate, myString; 
Смежные вопросы