Динамическая высота UITableView с объектами Core Data

Последние несколько дней я пытался разгадать загадку, почему мой NSFetchedResultsController с размером пакета 20 всегда выдавал ошибку (то есть загружал в память) все мои объекты немедленно когда выборка была завершена, в результате чего запрос занял ~ 20 секунд.

Оказывается, это было потому, что в моем heightForRowAtIndexPath высота основывалась на длине свойства NSString каждого извлеченного объекта, и поэтому при перезагрузке таблицы, если в таблице 2000 строк, высота вычисляется для каждую строку в начале, и, поскольку я получаю доступ к текстовому свойству объекта, он выдаст ошибку в 2000 объектах (в пакетах по 20 размеров) в самом начале, что приведет к тому, что это займет вечность. (Я не знал, что высота строк рассчитывалась вначале).

Итак, вопрос в том, что если у меня есть контроллер результатов выборки с размером пакета 20, но мои высоты строк основаны на текстовом свойстве объекта, что, если я попытаюсь получить доступ, приведет к тому, что объект не будет ошибка больше, но фактически загружается в память, что может быть обходным путем для вычисления высоты?

Какие у меня есть варианты?

7
задан Lorenzo B 23 June 2012 в 15:49
поделиться