我在NSTableView中有一个自定义的NSCell,但它不能正确显示。表视图中有正确数量的项目,但除了第一个项目外,其他项目都是空的。第一个显示了单元格,但是当我在NSTableView上的某个地方单击时,它的值会随机变化。我怀疑这和我手机的copyWithZone:有关。我的单元格没有任何iVars,只有一个绘制其objectValue的drawWithFrame:inView:方法。在copyWithZone:中,我返回[[[MyCell allocWithZone: zone] init] autorelease]
我应该返回其他东西吗?
发布于 2011-03-04 22:23:31
您不应该对-copyWithZone:的结果执行-autorelease操作。"copy“是Cocoa中的三个魔术单词(new,alloc和copy)之一,表示返回的对象应该有一个有效的+1保留。
还要注意,您应该始终在某个时刻(initImageCell:或initTextCell:)调用单元格的指定初始值设定项。如果您的init没有调用其中的一个,那么您可能没有正确地初始化单元。参见Subclassing NSCell。
https://stackoverflow.com/questions/5194913
复制相似问题