代码之家  ›  专栏  ›  技术社区  ›  Ian Turner

NSEntityDescription的名称有问题

  •  0
  • Ian Turner  · 技术社区  · 15 年前

    这个问题是从一个新的角度来解决的 previous question .

    当我运行以下代码行时:

    NSEntityDescription *outputCellEntityDescription = [NSEntityDescription entityForName:@"OutputCell"
                                                                   inManagedObjectContext:[[self document] managedObjectContext]];
    

    我得到以下错误:

    HIToolbox: ignoring exception '+entityForName: could not locate an NSManagedObjectModel for entity name 'OutputCell'' that raised inside Carbon event dispatch
    

    我关心的是错误中实体名称末尾似乎出现了额外的上扬。有人能解释一下为什么会发生这种情况,或者我该如何调试它吗。代码在第一次运行时正常运行,但是在获取一些核心数据之后,代码似乎中断了。可能是内存泄漏或类似的问题吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   TechZen    15 年前

    没有额外的上升。只有嵌套的引号:

    [']+entityForName:找不到 实体名称的NSManagedObjectModel

    此位是异常返回的字符串。它反过来又 OutputCell 单引号。不过,这看起来确实令人困惑。如果你以前没看过,很容易错过。

    但是,不确定是什么导致了错误。

    编辑:

    作为调试步骤,我建议将调用的结果记录到 -[NSManagedObjectModel entities] 输出单元

    对您的问题的一个简单解释是,在保存后,您可以通过某种方式切换模型。或者您不小心指定了一个不同的模型,或者您将现有的模型置零。要测试这一点,您应该记录NSManagedObjectModel实例的地址,并查看它是否更改。