NSOutlineView EXC_BAD_ACCESS 展开时崩溃
NSOutlineView EXC_BAD_ACCESS crash on expand
我正在尝试在我的项目中使用 NSOutlineView
,使用 Swift。
我已经使用 Objective-C 完成了几次,没有任何问题,但由于某种原因,现在我的应用程序不断崩溃 EXC_BAD_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
}
知道我做错了什么吗?
我在这里上传了测试项目。请审查它。 https://drive.google.com/file/d/0BzEhecUbyNeFS3JGN1V0SlJ0dWM/view
为了使您的示例按预期工作,我必须解决一些问题:
"Test" 是本地字符串并在大纲视图试图保留它之前被释放,导致崩溃。这是通过让视图控制器拥有项目来解决的。
之后遇到无限递归崩溃。这是通过使用数据模型而不是告诉大纲视图每个项目都有 3 个子项来解决的,无论该项目处于什么级别。
我还将项目更改为从 NSObject 而不是 String 子类化的实例,因为我记得读过那是必要的。 (我目前找不到参考。)
我正在尝试在我的项目中使用 NSOutlineView
,使用 Swift。
我已经使用 Objective-C 完成了几次,没有任何问题,但由于某种原因,现在我的应用程序不断崩溃 EXC_BAD_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
}
知道我做错了什么吗?
我在这里上传了测试项目。请审查它。 https://drive.google.com/file/d/0BzEhecUbyNeFS3JGN1V0SlJ0dWM/view
为了使您的示例按预期工作,我必须解决一些问题:
"Test" 是本地字符串并在大纲视图试图保留它之前被释放,导致崩溃。这是通过让视图控制器拥有项目来解决的。
之后遇到无限递归崩溃。这是通过使用数据模型而不是告诉大纲视图每个项目都有 3 个子项来解决的,无论该项目处于什么级别。
我还将项目更改为从 NSObject 而不是 String 子类化的实例,因为我记得读过那是必要的。 (我目前找不到参考。)