2011-03-04 3 views
0

У меня есть пользовательский NSCell в NSTableView, и он отображается неправильно. В представлении таблицы есть нужное количество элементов, но они пусты, за исключением первого. Первая показывает ячейку, но ее значения изменяются случайным образом, когда я нажимаю где-то на NSTableView. Я подозреваю, что это имеет какое-то отношение к моей ячейке copyWithZone:. В моей ячейке нет iVars, всего лишь метод drawWithFrame:inView:, который рисует объект objectValue. В copyWithZone: Я возвращаю [[[MyCell allocWithZone: zone] init] autorelease]NSCell не отображается должным образом

Должен ли я вернуть что-то еще?

ответ

0

Вы не должны -autorelease результат -copyWithZone:. «copy» является одним из трех волшебных слов в Cocoa (new, alloc и copy), которые указывают на то, что возвращаемый объект должен иметь эффективный +1 на нем.

Также обратите внимание, что вы должны всегда вызывать инициализатор ячейки в какой-то момент (initImageCell: или initTextCell:). Если ваш init не называет одного из них, вы, вероятно, неправильно инициализируете свои ячейки. См. Subclassing NSCell.

 Смежные вопросы

  • Нет связанных вопросов^_^