NSCell отображается неправильно - PullRequest
0 голосов
/ 04 марта 2011

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

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

1 Ответ

0 голосов
/ 04 марта 2011

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

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

...