Основные данные и пользовательские NSCell - PullRequest
0 голосов
/ 15 декабря 2009

Я создаю игрушечное приложение, используя базовые данные для двух сущностей Log (атрибуты text и date) и Tag с отношением «многие ко многим» tags от Log до Tag.

Я хочу показать журналы в таблице, поэтому я:

  • создал экземпляр NSArrayController, LogController в IB с сущностью, установленной на Log ( pic )
  • создал один столбец NSTableView, столбец которого связан с LogController. рис
  • связал LogController в моем делегате приложения (AppDelegate), используя IBOutlet. AppDelegate также имеет managedObjectContext.
  • создал пользовательский класс NSCell с NSString свойствами mainText и tagsText, которые я рисую в ячейке
  • Я установил вышеупомянутые свойства двух ячеек в AppDelegate в методе - (void)tableView: willDisplayCell: forTableColumn: row:. (MainController также является делегатом таблицы). Для tagsText я получаю теги для текущего журнала и объединяю их в один NSString

Все работает нормально, кроме: Когда я выбираю мышью строку, отображающую несколько тегов, приложение вылетает с EXC_BAD_ACCESS. Это единственный раз, когда у меня возникает ошибка, но я не знаю, что ее вызывает.

1 Ответ

0 голосов
/ 18 декабря 2009

EXC_BAD_ACCESS - ошибка памяти. Вы используете объект после его освобождения. Было бы трудно отладить это без кода.

Вы используете сборщик мусора? Вам не нужно самостоятельно управлять памятью на Mac.

Объявлены ли свойства в вашем пользовательском NSCell как "сохранить"?

...