Итак, это довольно стандартное управление памятью, насколько я понимаю:
ClassName *temp=[[ClassName alloc] init];
self.ivar=temp;
[temp release];
Это сделано для того, чтобы избежать утечки памяти, создаваемой следующим образом:
self.ivar=[[ClassName alloc] init];
Классно.Но предположим, у меня есть несколько иваров, основанных на ClassName
?Это нормально:
ClassName *temp=[[ClassName alloc] init];
self.ivar=temp;
self.othervar=temp;
self.anothervar=temp;
[temp release];
В конечном итоге они все будут манипулировать одним и тем же объектом, даже если я хочу, чтобы у них были разные экземпляры ClassName
?Я предполагаю, что результат этого может зависеть от того, были ли ивары созданы как retain
против copy
?Предположим, они установлены на retain
, это будет хорошо?