0

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

我应该退回其他东西吗?

4

1 回答 1

0

你不应该-autorelease的结果-copyWithZone:。“copy”是 Cocoa 中的三个神奇词之一(new、alloc 和 copy),它表明返回的对象应该有一个有效的 +1 保留。

另外,请注意,您应该始终在某个点(initImageCell:initTextCell:)调用单元格的指定初始化程序。如果您init没有调用其中之一,那么您可能没有正确初始化您的单元格。请参阅子类化 NSCell

于 2011-03-04T14:23:30.590 回答