iPhone应用程序因错误而崩溃:由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法在bundle中加载NIB:

时间:2011-04-06 11:24:30

标签: objective-c cocoa-touch ios

我的应用程序在使用各种错误消息(例如:

)进行大量测试时崩溃
 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle:
ImageIO: CGImageRead_mapData 'open' failed error = 24 (Too many open files)

在这个viewcontroller中,我正在测试我也加载了多个音频文件和图像。 该应用程序在正常情况下工作正常。我有什么东西我不见了?任何帮助,将不胜感激。 谢谢,

2 个答案:

答案 0 :(得分:1)

  

因未捕获而终止应用   例外   'NSInternalInconsistencyException'

您应用中的某些内容会引发异常。您没有捕获该异常,因此它会向下渗透堆栈并最终命中默认的异常处理程序,从而终止应用程序。您可以通过捕获该异常并在它到达终止点之前处理它来解决问题。

  

原因:'无法在捆绑中加载NIB:   ImageIO:CGImageRead_mapData'open'   失败错误= 24(打开太多   文件)

考虑到你所说的你正在做的事情,这种情况发生可能并不奇怪。因此,除了改进异常处理之外,您可能还希望限制一次打开的文件数。

答案 1 :(得分:1)

关闭文件句柄,这是一个有限的系统资源。正如Apple的编程指南中所描述的那样,当你完成这些资源时,你应该立即释放这些资源 ,并且应该设计软件来限制这些稀缺系统资源的使用。另请注意,您可能不是唯一使用这些资源的人!

你可能遇到的一个问题是 - 不要在dealloc方法中释放这些稀缺资源。当你期望或永远不能保证那些被调用。相反,明确释放这些资源。