2011-09-05 43 views
3

我有点失落了......看起来我无法找到为什么我无法从NSTableView中取消选择行。我在Interface Builder中允许空选择,但是一旦我调用deselectRow:或deselectedAll:,我就会得到一个异常。取消选择NSTableView行时出现异常

例如,使用此代码:

NSLog(@"Currently selected row index: %ld", [self.tableView selectedRow]); 
[self.tableView deselectRow:[self.tableView selectedRow]]; 

我得到:

2011-09-05 MyApp[18939:707] Currently selected row index: 1 
2011-09-05 MyApp[18939:707] *** -[__NSArrayM objectAtIndex:]: index 18446744073709551615 beyond bounds [0 .. 3] 

我甚至得到同样的错误,如果我叫deselectRow:用硬编码值(比如0)供测试用。所以我想这个错误来自与我的NSArrayController的绑定或其他东西?

+0

异常与一些代码反应,取消选择可能发生...你有这样的一些代码? – 2011-09-05 19:29:25

+0

结果是什么导致了原因? – paulmelnikow

回答

-1

像这样一个很长的整数通常意味着一个内存地址被转换为一个整数。这反过来通常是由将对象传递给标量变量引起的。

在IB中,查看界面元素的selected object绑定。在某些时候,您将一个对象递交到deselectRow而不是标量整数。

0

我的解决方案(生疼,我知道)

if(row != UINT64_MAX)