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