我在NSTableView中有一个自定义的NSCell,它无法正确显示。表视图中包含正确数量的项目,但除第一个项目外,它们都是空的。第一个显示单元格,但当我点击NSTableView上的某个地方时,它的值会随机变化。我怀疑这与我的手机copyWithZone:
有关。我的单元格没有任何iVar,只是一个绘制objectValue的drawWithFrame:inView:
方法。在copyWithZone:
我返回[[[MyCell allocWithZone: zone] init] autorelease]
我应该退回别的东西吗?
答案 0 :(得分:0)
您不应-autorelease
-copyWithZone:
的结果。 “copy”是Cocoa中的三个神奇单词之一(new,alloc和copy),表示返回的对象应该有一个有效的+1保留。
另外,请注意,您应始终在某个时间点(initImageCell:
或initTextCell:
)调用单元格的指定初始值设定项。如果您的init
没有调用其中一个,那么您可能没有正确初始化您的单元格。请参阅Subclassing NSCell。