在XCode中进行调试时,为什么我在控制台中出现这些错误?

时间:2009-05-27 06:32:37

标签: objective-c cocoa

我正在创建一个应用程序,当我运行它时,我检查调试窗格,我在控制台内部收到这些错误:

2009-05-27 07:18:03.852 Spark [1228:10b] [valueForUndefinedKey:]:实体项目不是关键值的密钥值编码兼容。

2009-05-27 07:18:09.029 Spark [1228:10b]关键路径selectionIndexPaths对象[实体:项目]的错误设置值(来自Nib中具有对象ID 726的绑定对象,名为MainMenu.nib ):[valueForUndefinedKey:]:实体项目不是键值符号的键值编码。

只有当我将文本字段值绑定到NSTreeController的选择和Controller Key'Notes'时才会发生,我还注意到当我尝试编辑应用程序中的文本字段时,大纲视图会冻结(这是上述错误时)在控制台中显示)。我该如何解决这个问题我没有正确绑定文本字段,下面是文本字段绑定的图片: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;
}.**

3 个答案:

答案 0 :(得分:1)

如果在大纲视图中选择了项目,则文本字段会尝试从“选定”树控制器项(项目)中获取值注释。由于Projects实体没有notes属性,因此KVO会抛出异常。

在文本字段的“值”绑定中取消选择绑定选项“不适用键的引发”。

答案 1 :(得分:1)

您已将文本字段绑定到Projects的注释,但在您的模型中,只有Taskses有注释。如果您希望Projectses有笔记,您需要将该属性添加到Projects实体;如果您打算绑定到Taskses,那么您需要更改模型键路径,可能更改为children.notes

(相关:那些实体名称应该是单数。)

至于新错误:文本字段无法显示样式文本,只能显示纯文本。改为制作文字视图。

答案 2 :(得分:0)

第二个错误:

在文本字段的属性中,您是否选择了“富文本”选项?看起来它正在向Notes属性发送一个NSAttributedString,它需要一个NSString。

如果已设置,请关闭此选项。