代码之家  ›  专栏  ›  技术社区  ›  Douglas Mayle

与NSFetchedResultsController一起使用可变高度?

  •  2
  • Douglas Mayle  · 技术社区  · 15 年前

    设计/使用我的模型和NSFetchedResultsController以便使用具有可变高度单元格的表格的最佳方法是什么?计算高度是昂贵的(并且需要访问模型的数据),所以我正在缓存模型中的值。但是,我知道tableview会要求所有可见单元格的高度。

    我目前的想法是,我将限制结果的数量,并允许用户自己获取更大的数字,以防止负载过大。

    然而,我担心的是,我的行中每个相关数据大约包含200字节。确实,断层200行只占20k左右,但如果我想显示20000行呢?我将对2MB的原始数据进行故障处理,以设置单元格高度。

    有一个属性占用了大约90%的数据。这意味着我可以将主实体每行减少到20字节。是否值得将其保存在一个单独的实体中,这样我就可以避免在不需要时对其进行错误处理?

    最后一点注意:单元格高度完全是动态的,取决于内容。如果只有几个可能的选择,这将简单得多。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Alex Reynolds    15 年前

    如果可以根据倒入单元格的内容枚举单元格类型,并将单元格类型存储在数据模型中,则可以执行以下操作: switch - case 树返回每个单元预先计算的标准高度。

        2
  •  0
  •   Douglas Mayle    15 年前

    幸运的是,从iPhoneSDK3.1开始,我们可以跟踪核心数据使用的sql调用。事实证明,对于少量数据(如每个单元200字节),如果将所有数据都保存在同一个实体中,性能会好得多。对于上面的示例(有20000个单元),核心数据可能会执行2000个额外的请求来获取它所需的数据,而获取请求的开销变得很麻烦。在那个阶段,最好使用批处理来加快速度。