У меня проблемы с выяснением того, как управлять памятью для переменной экземпляра, которая должна поддерживать свое текущее состояние в течение определенного периода времени, а затем переназначаться на вновь выделенную память.
Возьмите следующий пример для переменной экземпляра "ImportantData".:
-(void)Update
{
importantData = [[self getObject] retain];
}
- (SomeObject *)getObject
{
SomeObject *objInstance = [[SomeObject alloc] init];
[objInstance autorelease];
return objInstance;
}
В моем реальном проекте процедура getObject относится к другому классу, но я упростил ее, чтобы донести свою мысль. Важно, чтобы важные данные оставались действительными между вызовами Обновления.
Каждый раз, когда вызывается getObject, я выделяю новую память и присваиваю ее важным данным, верно? Я полагаю, что я должен освободить память, на которую важныеData указывали раньше, верно? Я не уверен, как сделать это правильно без утечки памяти или попыток сослаться на освобожденную память. Спасибо!