2011-03-04 77 views
0

我在NSTableView中有一个自定义的NSCell,它无法正确显示。表格视图中有正确数量的项目,但除第一个项目外,它们是空的。第一个显示单元格,但是当我点击NSTableView上的某个位置时,它的值会随机变化。我怀疑这与我的手机copyWithZone:有关。我的单元格没有任何iVar,只是一个drawWithFrame:inView:方法绘制其objectValue。在copyWithZone:我回来[[[MyCell allocWithZone: zone] init] autorelease]NSCell未正确显示

我应该还回别的东西吗?

回答

0

您不应该-autorelease-copyWithZone:的结果。 “copy”是Cocoa中的三个魔术字(新的,分配和复制)中的一个,它表示返回的对象应该有一个有效的+1保留。

此外,请注意,您应该始终在某个时间点调用单元格的指定初始值设定项(initImageCell:initTextCell:)。如果你的init没有调用其中之一,那么你可能没有正确初始化你的单元格。请参阅Subclassing NSCell