Есть много примеров сеттера, как мы должны сделать это, например:Ненужный релиз в инкубаторе
- (void)setFoo:(NSString *)newFoo
{
if (foo != newFoo)
{
[foo release];//??
foo = [newFoo retain];
}
}
Я понимаю, что нам нужно, чтобы освободить значение предыдущего, а затем назначить новую с сохранить, вот как документация говорит нам, что делать, но я не могу понять, что мы должны выпустить, если назначить foo = [newFoo сохранить]; будет делать foo только новое значение с помощью текущего счетчика newFoo, и если даже счетчик сохранения foo был 5 раньше, он станет newFoo + 1, или я что-то пропущу и пойму неправильно. Почему мы не можем просто сделать:
- (void)setFoo:(NSString *)newFoo
{
if (foo != newFoo)
{
foo = [newFoo retain];
}
}
oh 10x, я понимаю. На самом деле нам нужно выпустить не var, а ячейку памяти –