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的子类实例,而不是字符串,因为我记得读到这是必要的。(我目前找不到引用。)