Почему я получаю эти ошибки в консоли при отладке в XCode?

Я создаю приложение, и когда я запускаю его, я проверяю панель отладки, я получаю следующие ошибки внутри консоли:

2009-05-27 07: 18: 03.852 Spark [1228: 10b] [valueForUndefinedKey:]: объект Projects не соответствует кодированию значений ключа для ключевых примечаний.

2009-05-27 07: 18: 09.029 Spark [1228: 10b] Ошибка установки значения для ключевого пути selectionIndexPaths объекта [entity: Projects] (из связанного объекта с идентификатором объекта 726 в Nib с именем MainMenu.nib): [ valueForUndefinedKey:]: объект Projects не соответствует кодированию ключевых значений для ключевых примечаний.

Это происходит только тогда, когда я привязываю значение текстовых полей к выбору NSTreeController и «Примечаниям» ключа контроллера, я также замечаю, что когда я пытаюсь редактировать текстовое поле в приложении, Outline View зависает (это когда указанная выше ошибка отображается в консоли ). Как я могу это исправить. Если я неправильно привязал текстовое поле, вот изображение привязок для текстового поля: http://snapplr.com/840y

Схема объектов

http://snapplr.com/vqc9

НОВАЯ ошибка

**2009-05-27 18:37:41.661 Spark[3957:10b] Unacceptable type of value for attribute: property = "notes"; desired type = NSString; given type = NSConcreteAttributedString; value = Alpha Nine Zeta{
    NSColor = NSNamedColorSpace System textColor;
    NSFont = "MarkerFelt-Thin 16.00 pt. P [] (0x001a7190) fobj=0x00146ef0, spc=4.00";
    NSOriginalFont = "MarkerFelt-Thin 16.00 pt. P [] (0x001a7190) fobj=0x00146ef0, spc=4.00";
    NSParagraphStyle = Alignment 3, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (
    28L,
    56L,
    84L,
    112L,
    140L,
    168L,
    196L,
    224L,
    252L,
    280L,
    308L,
    336L
), DefaultTabInterval 0, Blocks (null), Lists (null), BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0.05, HeaderLevel 0;
}.**

person Joshua    schedule 27.05.2009    source источник
comment
Не могли бы вы опубликовать код или диаграмму сущностей для проектов - в этом сообщении говорится, что проблема.   -  person Abizern    schedule 27.05.2009
comment
Только что добавил диаграмму сущности   -  person Joshua    schedule 27.05.2009


Ответы (3)


Если проект выбран в вашем представлении структуры, текстовое поле пытается получить заметки значений из «выбранного» элемента treecontroller, который является проектом. Поскольку у объекта Projects нет атрибута notes, KVO выдает исключение.

Отмените выбор параметра привязки «Повышает для неприменимых ключей» в привязке «значение» текстового поля.

person cocoafan    schedule 27.05.2009
comment
Спасибо, это устранило часть проблемы, но когда я изменяю текст в текстовом поле, когда оно выбрано, контурный вид останавливается, и консоль выдает мне эту ошибку. [См. Исправление ошибки в первом сообщении] - person Joshua; 27.05.2009
comment
cocoafan: Все, что он сделал, - это замаскировал ошибку, заключающуюся в том, что он привязан не к тем объектам. - person Peter Hosey; 27.05.2009
comment
Питер Хози: Я думаю, он хочет отображать все проекты на верхнем уровне в виде дерева, выступающего в качестве папок для задач. NSTreeController может содержать как проекты, так и задачи. - person cocoafan; 27.05.2009

Вы связали текстовое поле с примечаниями к проектам, но в вашей модели только задачи имеют примечания. Если вы хотели, чтобы в Projectses были заметки, вам нужно добавить это свойство в сущность Projects; если вы хотели привязать к задачам, вам нужно изменить путь ключа модели, возможно, на children.notes.

(Связано: эти имена сущностей действительно должны быть в единственном числе.)

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

person Peter Hosey    schedule 27.05.2009
comment
Извините, Abizern и Cocoafan опередили вас. - person Joshua; 27.05.2009
comment
Не совсем. Они правильно определили проблемы, но предложили разные решения (и cocoafan был даже неправильным, поскольку он маскировал проблему, но не решал ее). - person Peter Hosey; 27.05.2009

Вторая ошибка:

В атрибутах текстового поля выбран ли у вас вариант RTF? похоже, что он отправляет NSAttributedString свойству Notes, которое ожидает NSString.

Отключите этот параметр, если он установлен.

person Abizern    schedule 27.05.2009
comment
Да, вот и все Спасибо! К сожалению, я не могу отметить два ответа. Вы не возражаете, если я отмечу ответ cocoafan, потому что у него меньше баллов, и он ответил первым? - person Joshua; 27.05.2009