objective-c - 具有核心数据对象的动态 UITableView 高度

标签 objective-c ios uitableview core-data row-height

过去几天我一直在努力解开一个谜团,即为什么我的批处理大小为 20 的 NSFetchedResultsController 总是在获取完成后立即在我的所有对象中出错(即加载到内存中),导致请求大约需要 20 秒。

原来是因为在我的 heightForRowAtIndexPath 中,高度是基于每个获取的对象的 NSString 属性的长度,所以在重新加载表时,如果表有 2000 行,则高度计算为一开始的每一行,并且由于我访问了对象的文本属性,它会在一开始就在 2000 个对象(20 个大小的批处理)中出错,导致它永远花费。 (我不知道一开始就计算了行高)。

所以问题是,如果我有一个批量大小为 20 的获取结果 Controller ,但我的行高是基于对象的文本属性,如果我尝试访问它会导致对象不是不再出错但实际上已加载到内存中,计算高度的解决方法是什么?

我有哪些选择?

最佳答案

有趣的问题。为了提高性能,我会做的是在您的模型中创建一个属性来存储该字符串文本的长度。通过这种方式,您无需即时计算每一行的长度,但您有一个预先计算好的高度。

Myabe 可能还有其他有值(value)的解决方案。

关于objective-c - 具有核心数据对象的动态 UITableView 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11170762/

相关文章:

ios - 将自定义对象导入多个文件

iphone - label.text 和 NSNumber 错误

UINavigationController 和 UISearchBar 之间的 iOS 9 细线

ios - UITableView 编辑模式下的页眉和页脚缩进

iphone - 单击 iPhone 应用程序中的表格 View 单元格打开相机

iphone - CGRect 在动画期间不改变

ios - Objective-C 如何检查哪些对象正在引用我的对象(保留周期)

iOS Web View 强制大小

iphone - 顶部和底部栏在 iPhone 模拟器中不可见

ios - 在Swift中,如何从UITableView中获取对象id并根据对象id删除对象?