Не вызывайте retainCount
Абсолютный счет удержания бесполезен.
([cell retainCount] < 1)
не может работать;retainCount
никогда не сможет вернуть ноль.
(Да, загрузка пера в cellForRowAtIndexPath:
теперь благословлена платформой. Coolio.)
Ваша проблема, таким образом, заключается в том, чтокод (без сохранения) правильный.
Вполне вероятно, что произойдет утечка пула с авто-выпуском, которая происходит до истечения обычного цикла обработки событий.В частности, что-то где-то имеет слабую ссылку на ячейку, которая не должна.
Если вы запустите инструмент Allocations и включите сохранение / разблокировку записи событий, вы сможете точно увидеть, где находятся вызовы, чтобы сохранить / освободить/ autorelease объект происходит.Событие, вызывающее сбой, имеет очевидное значение.
В этом случае, возможно, вам где-то не хватает пары сохранения / разблокирования.По крайней мере, это было бы исправить симптомы.Реальная проблема, вероятно, заключается в каком-то переходе пользовательского интерфейса, который происходит так, что некоторое содержимое фактически преждевременно пожинается, в то время как какой-то другой раздел вашего приложения все еще зависит от него.Добавление пары сохранения / освобождения так, чтобы срок службы ячейки сохранялся на протяжении всего этого перехода, на самом деле не является исправлением, поскольку могут существовать другие зависимости.