什么是NSInternalInconsistencyException以及如何处理它?

时间:2012-02-10 07:14:38

标签: objective-c

通常我会收到包含不同错误消息的NSInternalInconsistencyException,任何好友都可以提供有关此异常的特定原因和解决方案。请提供有关此例外的任何信息,链接或博客帖子。它将帮助我和新来者克服这个问题。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

如果不了解更多信息,你就无法对内部不一致异常做任何事情,这就像在没有找到原因的情况下治疗疼痛一样。