【问题标题】:Why am I getting these Errors in the Console when Debugging in XCode?为什么我在 XCode 中调试时会在控制台中收到这些错误?
【发布时间】:2009-05-28 02:24:04
【问题描述】:

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

2009-05-27 07:18:03.852 Spark[1228:10b] [valueForUndefinedKey:]:实体项目不符合关键注释的键值编码。

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

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

【问题讨论】:

  • 您能否发布项目的代码或实体图 - 这就是消息所说的问题所在。
  • 刚刚添加了实体图

标签: objective-c cocoa


【解决方案1】:

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

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

【讨论】:

  • 谢谢,这已经解决了部分问题,但是当我在选择它时更改文本字段中的文本时,大纲视图冻结,并且控制台给了我这个错误。 [见第一篇文章编辑错误]
  • cocoafan:所做的只是掩盖了错误,即他绑定了错误的实体。
  • Peter Hosey:我认为他想在树的顶层显示所有项目,作为任务的文件夹。 NSTreeController 可以同时包含项目和任务。
【解决方案2】:

您已将文本字段绑定到项目的注释,但在您的模型中,只有任务有注释。如果您想让 Projectses 有注释,则需要将该属性添加到 Projects 实体;如果您打算绑定到 Taskses,那么您需要更改模型密钥路径,可能为 children.notes

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

至于新的错误:文本字段不能显示样式文本,只能显示纯文本。改为创建一个文本视图。

【讨论】:

  • 抱歉,Abizern 和 Cocoafan 打败了你。
  • 不完全是。他们正确地发现了问题,但给出了不同的解决方案(可可粉的甚至是错误的,因为它掩盖了问题但没有解决它)。
【解决方案3】:

第二个错误:

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

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

【讨论】:

  • 是的,就是这样,谢谢!很遗憾,我无法勾选两个答案,您介意我勾选 cocoafan 的答案,因为他的分数较低并先回答吗?
猜你喜欢
  • 2011-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 1970-01-01
  • 2012-03-05
  • 1970-01-01
相关资源
最近更新 更多