Понятно, поэтому аспект табличного представления важен.
В качестве источника данных ваша задача - вернуть (и получить, в случае редактирования пользователем) значения объекта для ячеек встолбцы.
Но вы не возвращаете такое значение;ты возвращаешь камеру.Таким образом, вы пытаетесь установить ячейку изображения (созданную источником данных) в качестве значения ячейки изображения (существующей, принадлежащей столбцу).
В сообщении журнала указывается, что вы уже установилиячейка столбца как ячейка изображения при создании столбца, поэтому все, что вам нужно сделать сейчас, это изменить источник данных, чтобы всегда возвращать значение объекта для столбца, а не ячейку.Для столбца изображения верните изображение.Для текстового столбца верните строку.
Обратите внимание, что NSTableView не работает как UITableView, где UITableViewCells являются UIViews, и у вас столько же ячеек, сколько строк на экране;в NSTableView каждый NSTableColumn получает одну и только одну ячейку данных , и эта одна ячейка используется для рисования этого столбца каждой строки.Ячейка отображает значение своего объекта, которое вы передаете в ячейку, и вы возвращаете его (значение объекта) из метода источника данных.
Документация по элементам управления (NSTableView является разновидностью NSControl)и их ячейки - Руководство по программированию для ячеек и управления .