NSTableView binding + delegate 导致数组索引错误
NSTableView binding + delegate causes array index error
我有一个基于视图的 NSTableView,它使用到 NSArrayController 的绑定。
一旦我向 table 视图添加委托,我就开始获得:
Ignoring exception raised in void run_cocoa_block(void *): *** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array
和
MyApp[59144:25384659] *** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array
MyApp[59144:25384659] (
0 CoreFoundation 0x00007fff93410452 __exceptionPreprocess + 178
1 libobjc.A.dylib 0x00007fff9601af7e objc_exception_throw + 48
2 CoreFoundation 0x00007fff93327775 -[__NSArrayM objectAtIndex:] + 245
3 AppKit 0x00007fff9bd7ad31 -[NSTableRowData _addViewToRowView:atColumn:row:] + 535
4 AppKit 0x00007fff9bd7a98e -[NSTableRowData _addViewsToRowView:atRow:] + 184
5 AppKit 0x00007fff9bd791a7 -[NSTableRowData _initializeRowView:atRow:] + 390
6 AppKit 0x00007fff9bd77907 -[NSTableRowData _addRowViewForVisibleRow:withPriorView:] + 416
如果我删除委托连接,一切正常...table 从它绑定的 NSArrayController 正确填充,并且 cells/columns 也获得正确的数据。
我需要代理才能使用
-(BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor
可能是什么原因造成的?
在应用程序的其他地方,我有一个 sheet,它也使用基于视图的 NSTableView 和绑定,它可以很好地与委托一起工作。
在 awakeFromNib: 中,我正在调用:
[[self itemsController] setContent:[[[NSMutableArray alloc] init] autorelease]];
这在基于单元格的 NSTableView 中有效,但在基于视图的 NSTableView 中无效。我不确定为什么,但是给它这个空数组可能是在绑定发生之后但在 OS 对它做了其他事情之前发生的,空数组使它感到困惑。
我有一个基于视图的 NSTableView,它使用到 NSArrayController 的绑定。
一旦我向 table 视图添加委托,我就开始获得:
Ignoring exception raised in void run_cocoa_block(void *): *** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array
和
MyApp[59144:25384659] *** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array
MyApp[59144:25384659] (
0 CoreFoundation 0x00007fff93410452 __exceptionPreprocess + 178
1 libobjc.A.dylib 0x00007fff9601af7e objc_exception_throw + 48
2 CoreFoundation 0x00007fff93327775 -[__NSArrayM objectAtIndex:] + 245
3 AppKit 0x00007fff9bd7ad31 -[NSTableRowData _addViewToRowView:atColumn:row:] + 535
4 AppKit 0x00007fff9bd7a98e -[NSTableRowData _addViewsToRowView:atRow:] + 184
5 AppKit 0x00007fff9bd791a7 -[NSTableRowData _initializeRowView:atRow:] + 390
6 AppKit 0x00007fff9bd77907 -[NSTableRowData _addRowViewForVisibleRow:withPriorView:] + 416
如果我删除委托连接,一切正常...table 从它绑定的 NSArrayController 正确填充,并且 cells/columns 也获得正确的数据。
我需要代理才能使用
-(BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor
可能是什么原因造成的?
在应用程序的其他地方,我有一个 sheet,它也使用基于视图的 NSTableView 和绑定,它可以很好地与委托一起工作。
在 awakeFromNib: 中,我正在调用:
[[self itemsController] setContent:[[[NSMutableArray alloc] init] autorelease]];
这在基于单元格的 NSTableView 中有效,但在基于视图的 NSTableView 中无效。我不确定为什么,但是给它这个空数组可能是在绑定发生之后但在 OS 对它做了其他事情之前发生的,空数组使它感到困惑。