过去几天我一直在试图解开一个谜,为什么我的批量大小为 20 的 NSFetchedResultsController 在提取完成后总是会立即出现故障(即加载到内存中)我的所有对象,导致请求大约需要 20 秒。
事实证明,这是因为在我的 heightForRowAtIndexPath 中,高度是基于每个获取的对象的 NSString 属性的长度,因此在重新加载表格时,如果表格有 2000 行,则计算中每一行的高度一开始,由于我访问对象的文本属性,它会在一开始就出现 2000 个对象(以 20 个大小的批次),导致它永远存在。(我不知道一开始就计算了行高)。
所以问题是,如果我有一个批量大小为 20 的 fetch results 控制器,但我的行高是基于对象的文本属性,如果我尝试访问会导致对象不再是错误但是实际加载到内存中,计算高度的解决方法是什么?
我有哪些选择?