стоит немного больше справиться с управлением памятью iPhone.
Как правило, [alloc] и [copy] увеличивают ваш счет удержания на единицу. Итак, следующая строка:
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier] autorelease];
увеличивает количество сохраняемых элементов вашего нового объекта ячейки с нуля до единицы.
Вы можете , затем вручную уменьшите счет удержания до нуля, когда закончите, набрав следующее:
[cell release];
вместо авто-релиза. Это уменьшит количество сохраняемых данных до нуля, после чего система iPhone автоматически освободит память для этого объекта. [Обратите внимание, что вы никогда не вызываете [cell dealloc] напрямую - скорее, dealloc автоматически происходит, когда счетчик удержаний возвращается к нулю.]
Однако , вы не можете легко знать, когда эта ячейка больше не потребуется. Поэтому вместо этого вы используете [autorelease].
Не вдаваясь в глубины того, как работает авто-релиз, он эффективно собирает все объекты, на которые больше нет ссылок, и освобождает их (и, следовательно, освобождает их) в начале следующего цикла выполнения.
Пока у вас есть ссылка на объект ячейки, она не будет автоматически освобождена. В тот момент, когда у вас нет ссылки на него, он будет добавлен в пул авто-релизов и со временем будет освобожден.
Извините, что это немного связано - это помогает ??!