Swift NSOutlineView泄漏内存。怎么办?

Swift NSOutlineView泄漏内存。怎么办?,swift,macos,memory-leaks,nsoutlineview,Swift,Macos,Memory Leaks,Nsoutlineview,当一个最小的OSX应用程序在其脚本中只有一个普通的(未配置的)NSOutlineView时,它将严重泄漏内存 视图控制器实现 视图控制器的实现如下所示: 导入可可粉 班级{ 标题:字符串 let items:[字符串] 初始化(标题:字符串,项:[String]){ self.title=标题 self.items=项目 } } 类ViewController:NSViewController、NSOutlineViewDataSource、NSOutlineViewDeleteGate{ //

当一个最小的OSX应用程序在其脚本中只有一个普通的(未配置的)
NSOutlineView
时,它将严重泄漏内存

视图控制器实现 视图控制器的实现如下所示:

导入可可粉
班级{
标题:字符串
let items:[字符串]
初始化(标题:字符串,项:[String]){
self.title=标题
self.items=项目
}
}
类ViewController:NSViewController、NSOutlineViewDataSource、NSOutlineViewDeleteGate{
//标记:NSOutlineViewDataSource
让项目=[
章节(标题:“阿尔法”,项目:[“安东”,“安妮塔]),
章节(标题:“测试版”,项目:[“伯纳德”,“芭芭拉]),
章节(标题:“伽马”,项目:[“古斯塔夫”、“格辛”)]
func outlineView(outlineView:NSOutlineView,numberOfChildrenOfItem:AnyObject?->Int{
开关项{
无案例:返回项目。计数
大小写为节:return(项为!节)。items.count
默认值:返回0
}
}
func outlineView(outlineView:NSOutlineView,子索引:Int,of item项:AnyObject?->AnyObject{
返回项==nil
?项目[索引]
:(项作为!节)。项[索引]
}
func outlineView(outlineView:NSOutlineView,isItemExpandable item:AnyObject)->Bool{
返回项目是第节
}
func outlineView(outlineView:NSOutlineView,objectValueForTableColumn表格Column:NSTableColumn?,按项目:AnyObject?->AnyObject{
退货项目
}
//MARK:NSOutlineViewDelegate
func outlineView(outlineView:NSOutlineView,viewForTableColumn表格Column:NSTableColumn?,项目:AnyObject)->NSView{
让view=outlineView.makeViewWithIdentifier(项目是“HeaderCell”部分):“DataCell”,所有者:self)作为!NSTableCellView
view.textField?.stringValue=项目为节
?(项目名称为!节)。标题
:项为!字符串
返回视图
}
}

显示不断增加的内存消耗的Xcode 当应用程序启动并通过单击树项目来选择它们时,内存消耗会大幅增加

Xcode的调试导航器显示在短时间内内存消耗不断增加。只有在浏览NSOutlineView节点时,内存才会增加

仪器没有显示可疑的东西(或者是否有?) 然而,仪器显示出持续的内存使用,既不增加也不减少:


我可以从文书报告中得出什么结论?它之所以没有检测到泄漏,是因为它本身的泄漏(以及那些无法检测到的泄漏)是
NSOutlineView
还是根本没有泄漏?

您是否使用仪器的配置来分析您的应用程序?如果你这样做了,你应该能够锁定消耗最多内存的方法。我已经添加了内存消耗的屏幕截图——由Xcode的调试视图和仪器报告。结果很奇怪!从这里我可以得出什么结论?我添加了一个指向github存储库的链接,其中包含演示应用程序()