gpt4 book ai didi

cocoa - 我应该在 NSTableViewDataSource/NSOutlineViewDataSource 中缓存值吗

转载 作者:行者123 更新时间:2023-12-03 17:24:01 26 4
gpt4 key购买 nike

我提供一个NSOutlineViewDataSource。表的数据是从数据库中取出的。正在进行少量处理,但不多。

我正在计算 outlineView: objectValueForTableColumn: byItem: 调用上的值,而不是存储在我从 outlineView: child: ofItem: 返回的对象中,因为数据可能经常改变。

从初步调查来看,NSOutlineView 没有进行太多冗余的回调(即两次请求同一行)。我了解表模型的工作原理,并且我确实希望当数据集达到一定大小时它会执行一些操作。

我是否应该预期大量冗余调用(在这种情况下我应该尝试缓存数据)或者它本身是否进行合理数量的缓存?它是否每次单元格离开屏幕然后返回时都会进行调用?

是否缓存或重新计算的决定是我期望为给定单元格调用 objectValueForTableColumn 的频率之间的平衡。对于走哪条路有共识吗?或者是针对给定数据集的反复试验?

最佳答案

这是一个好问题,与我当前正在编码的领域相匹配。我自己的 TableView 从 sqlite3 数据库读取数据,因此我选择缓存数据(我的行数范围可以从 1 到几百万)。

我的缓存对象还包含一个上次访问时间值,以便我可以在缓存变得太大时清理缓存。

我面临的最大问题之一是我需要根据用户的搜索/排序要求SELECT我的数据,而NSTableViewDataSource没有为我提供包含有关当前可用行的信息。我想我需要对那个傻瓜进行子类化才能添加信息。

关于cocoa - 我应该在 NSTableViewDataSource/NSOutlineViewDataSource 中缓存值吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12142505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com