基于视图的NSTableView与基于单元的

时间:2019-06-29 14:27:42

标签: swift nstableview nstableviewcell

在我的Cocoa项目中,我设置了一个按钮,当按下该按钮时,它会将窗口框架向下扩展以显示一个Container View,该容器视图内部具有一个Table View。我将各种数据(图像,文本等)从计算机加载到内存,直到应用退出为止。数据传递到“表格视图”以在按下按钮并显示视图时显示。

我首先创建了基于单元的NSTableView。当窗口合拢时(即未在容器视图及其表视图中显示),XCode中的内存使用量仅为80 MB。当我扩展窗口时,它跳到160 MB(正常)。如果我向后折叠窗口,则内存使用量将降至80 MB,而不会发生内存泄漏。

然后,我选择了更多的自定义,并将基于Cell的NSTableView更改为基于View的NSTableView。我已经加载了相同的数据,但是我开始遇到内存问题。当窗口折叠时,我仍然有80 MB的内存使用量,但是当扩展时,它突然跳到260 MB +。我认为这是由于基于单元的NSTableView比基于视图的NSTableView更轻巧,这对我来说很好。但是,当我折叠窗口时,与基于Cell的80 MB内存相比,内存使用量仅为240 MB。

我尝试了多种方法来查找问题。我清空了要从其中加载Ta​​bleView的数据源,并对其进行了强制reloadData()操作,但是它似乎无法清除内存问题。

在互联网或Apple文档上,似乎没有关于它的信息。我发现的最接近的是this(不是注释,是子注释),它说“基于单元的NSTableView是可视模板,不存储任何数据”。

我做错什么了吗?任何帮助将不胜感激。

0 个答案:

没有答案