【问题标题】:What’s NSInternalInconsistencyException and how to deal with it?什么是 NSInternalInconsistencyException 以及如何处理?
【发布时间】:2012-02-10 07:14:37
【问题描述】:

我经常收到带有不同错误消息的NSInternalInconsistencyException,任何朋友都可以针对此异常给出具体的原因和解决方案。请提供有关此例外的任何信息、链接或博客文章。它将帮助我和新人克服这个问题。

例如,我收到以下异常消息:

"+entityForName: could not locate an NSManagedObjectModel for entity name 'Customer'"
2nd Context already has a coordinator; cannot replace.

【问题讨论】:

  • 把一些具体的错误信息,以及当你看到它们时你在做什么。或者这不是一个真正的问题。
  • @jrurton ..这两条消息是“+entityForName: could not locate an NSManagedObjectModel for entity name 'Customer'” 第二个上下文已经有一个协调器;无法替换。

标签: objective-c


【解决方案1】:

NSInternalInconsistencyException 是一般错误,通常由失败的NSAssertNSParameterAssert 或其他断言引起。它通常伴随着特定的错误消息,告诉您问题出在哪里。以如下代码为例:

NSAssert([foo isReadyToDoBar], @"Foo is not ready to bar.");

如果foo 没有准备好禁止,这应该会导致内部不一致异常。像这样的失败断言大多在开发过程中看到(或者至少应该如此),因为它们通常意味着程序员对 API 做错了,比如违反了一些没有通过类型系统强制执行的约束。

如果不了解更多信息,您将无法处理内部不一致异常,这就像治疗疼痛而不寻找原因一样。

【讨论】:

  • 感谢您的回复......您对这个问题的看法是什么:-question link
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-05
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
  • 2011-07-26
  • 1970-01-01
相关资源
最近更新 更多