Objective c 正在使用nil项调用的项的NSOutlineViewDeleteGate行视图
我有一个自定义的NSOutlineView子类,在其中我实现了自己的委托方法Objective c 正在使用nil项调用的项的NSOutlineViewDeleteGate行视图,objective-c,macos,cocoa,appkit,nsoutlineview,Objective C,Macos,Cocoa,Appkit,Nsoutlineview,我有一个自定义的NSOutlineView子类,在其中我实现了自己的委托方法 - (NSTableRowView *)outlineView:(NSOutlineView *)outlineView rowViewForItem:(id)item 我已经确认数据源设置正确,并且我的数据源方法实现正确 - (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item 始终返回正确的值 当我
- (NSTableRowView *)outlineView:(NSOutlineView *)outlineView rowViewForItem:(id)item
我已经确认数据源设置正确,并且我的数据源方法实现正确
- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item
始终返回正确的值
当我的程序运行时,初始化运行平稳,初始数据结构设置正确。然而,一旦程序进入第一个绘图周期,它就在-(NSTableRowView*)outlineView:(NSOutlineView*)outlineView rowViewForItem:(id)item{
的标题行崩溃,并显示消息EXC\u BAD\u ACCESS
。查看数据,我可以看到该项为零
为什么会出现这种情况?如果我正确设置了数据,我不明白为什么应该调用nil行项
有什么建议吗?
谢谢!您如何将项目数组存储在NSArray中?当此崩溃时,NSArray似乎仍然有效。我是否正确理解您的ouline视图是它自己的委托?项目nil通常是根项目。如果您不希望根项目有行,则应返回nil。是的,是的。是否有过根项目将行作为代理的情况与之相关?我不知道。你确定你总是在任何地方返回有效的项吗?你覆盖了NSOutlineView的哪些方法?