1

我可能过度思考这个问题,所以如果有建议和更清洁的头脑,那么我会全神贯注。

问题是我想在 SQLite 数据库中存储越来越多的数据,并能够NSTableView在我的应用程序中显示它,用户将与它进行交互,我担心只是将表预加载到NSArray对象中NSDictionary并遍历只是简单地实现类似的东西

- (id)tableView:(NSTableView *)tView objectValueForColumn:(NSTableColumn *)column row:(NSInteger)row {
  return [[myData objectAtIndex:row] objectForKey:column.identifier];
}

有两种可能性 - 一种,数据集可能会变大(>500,000 条记录),第二种,数据可能最终在本地网络上的数据库服务器中,其中记录可以由配套应用程序插入,然后向所有其他正在运行的实例发送消息在桌面上做一个reloadData- 不过现在让我们少关心一下第二个。默认视图是查看所有记录,然后过滤器会减少它们。

那么,我是否应该担心 NSArray/NSDictionary 中会有多少数据,因为 OSX 的内存管理只会将其洗牌到基于磁盘的缓存等,所以我需要做的就是在记录更改时更新数据库并调用 reloadData?

或者我是否应该考虑使 NSArray 非常轻量级并且只为数据库中的记录保存唯一 ID 并根据需要获取每个记录 - 因为 SQLite 是应用程序本地的,这在查找时会很昂贵,但我想不会削弱。无论如何,此方法将满足查看全部和查看过滤结果的情况。

在这一点上,我没有使用自定义单元,所以我会让操作系统担心重用队列等,然后再跨过那座桥。

我是否应该让我的应用程序模型缓存当前行,以便每列的值只是从数据对象中查找?

我已经考虑过核心数据,但以后可能会出现升级要求可能会成为障碍,而且我正处于 Apple 文档风格的临界点。

4

0 回答 0