Swift 扩展时NSOutlineView EXC\u错误访问崩溃

Swift 扩展时NSOutlineView EXC\u错误访问崩溃,swift,cocoa,xcode7,nsoutlineview,Swift,Cocoa,Xcode7,Nsoutlineview,我试图在我的项目中使用NSOutlineView,使用Swift。 我已经使用Objective-C做过几次了,没有任何问题,但由于某种原因,现在我的应用程序一直在EXC\u BAD\u ACCESS下崩溃,主要是在尝试扩展单元格时 我创建了一个新的测试项目,其中只有一个大纲视图和4个数据源方法,但是崩溃也会发生 以下是最低限度的实现: func outlineView(outlineView: NSOutlineView, numberOfChildrenOfItem item: AnyObj

我试图在我的项目中使用
NSOutlineView
,使用Swift。 我已经使用Objective-C做过几次了,没有任何问题,但由于某种原因,现在我的应用程序一直在
EXC\u BAD\u ACCESS
下崩溃,主要是在尝试扩展单元格时

我创建了一个新的测试项目,其中只有一个大纲视图和4个数据源方法,但是崩溃也会发生

以下是最低限度的实现:

func outlineView(outlineView: NSOutlineView, numberOfChildrenOfItem item: AnyObject?) -> Int {

    return 3
}

func outlineView(outlineView: NSOutlineView, child index: Int, ofItem item: AnyObject?) -> AnyObject {

    return "Test"
}

func outlineView(outlineView: NSOutlineView, isItemExpandable item: AnyObject) -> Bool {

    return true
}

func outlineView(outlineView: NSOutlineView, objectValueForTableColumn tableColumn: NSTableColumn?, byItem item: AnyObject?) -> AnyObject? {

    return nil
}
知道我做错了什么吗


我已经在这里上传了测试项目。请复习一下

要使您的示例按预期工作,我必须解决一些问题:

  • “Test”是一个本地字符串,在outline视图试图保留它之前被释放,这与此相关。这是由视图控制器拥有的项修复的

  • 之后,由于无限递归,我遇到了崩溃。通过使用一个数据模型,而不是告诉大纲视图,每个项目都有3个子项,无论该项目处于哪个级别,这一点都得到了解决

  • 我还将这些项更改为NSObject的子类实例,而不是字符串,因为我记得读到这是必要的。(我目前找不到引用。)