【问题标题】:Xcode8 'Could not load NIB in bundle'Xcode8 '无法在包中加载 NIB'
【发布时间】:2016-09-26 10:39:48
【问题描述】:

由于我已将项目升级到 xcode8 和 swift3,因此在 ios10 设备和模拟器上运行我的应用程序时遇到了问题。

我可以正常启动应用程序,但使用一段时间后出现以下错误:

*** Terminating app due to uncaught exception   
'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle:
'NSBundle </Users/****/Library/Developer/CoreSimulator/Devices/****/data/Containers/Bundle/Application/****/*****.app> (loaded)' 
with name 'Ncx-Ud-4zl-view-1i6-0r-ivc' and directory 'Main.storyboardc''
***

奇怪的是,我有时可以浏览同一个菜单或视图,但在 3 或 4 次之后,它给了我错误。

该应用可在 ios9 设备上正常运行。

更新: 我终于解决了它,将我的 CoreDataStackManager 类更新为 Swift3 sintax,并避免在我的 NSFetchedResultsControllers 上使用缓存。

【问题讨论】:

  • 你检查过你有没有那个笔尖吗?
  • 是的@Lu_,奇怪的是我有时可以在同一个菜单或视图中导航,但在 3 或 4 次后它给了我错误。
  • 写下你的导航代码。
  • 您能否在bugreport.apple.com 提交一份雷达文件,并附上您的应用程序或重现该问题的示例项目?请在这里报告票号,这样我就可以跳了。谢谢。
  • 我在我的应用程序的生产版本中遇到了同样的问题 - 该应用程序甚至没有为 iOS 10 重新构建,所以它不可能是 Xcode 问题,仅供参考@JeremyHuddlestonSequoia。当我第一次在 Xcode 8 中运行它时,我发现我也遇到了这个错误。与 Adrian 一起,它发生在第二次或第三次加载笔尖(但不一定,没有模式)。有时它每次都会发生。 6 年来我见过一些奇怪的 iOS 问题,但这是最奇怪的问题之一。我已使用票号提交错误报告:29092931

标签: swift storyboard swift3 ios10 xcode8


【解决方案1】:

我整个星期也一直在努力解决这个完全相同的问题,即 NIB 有时不会随机加载。我今天偶然发现了一些有趣的东西,但它解决了我的问题:

(NSFetchedResultsController): couldn't read cache file to update store info timestamps(感谢 Donnit 的回答!)

简而言之,问题在于我用来检索和显示 CoreData 模型的NSFetchResultsController。如果您在您的应用程序中使用NSFetchRequestController 并且您在初始化函数中设置了自己的cacheName,则Apple 在iOS 10 中引入的错误似乎会在每次托管对象时在设备后台打开文件上下文已保存。 iOS 设备可以打开的最大文件数是 255,因此它无法打开和加载新的 NIB 文件,然后崩溃(这似乎是我们得到的)。

Donnit 进行了一些测试,结果表明这已在 iOS 10.2 的 beta 版中得到解决,但在此期间,在公开发布更新之前,暂时解决此问题的方法是从您的 NSFetchResultsController 中删除 cacheName

不确定您是否有同样的问题,但它为我解决了所有问题。

【讨论】:

  • 可能与 OP 的问题无关,但又可能。无论如何,有趣的阅读!
猜你喜欢
  • 2017-11-01
  • 2011-07-21
  • 2012-06-03
  • 2011-07-03
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
  • 2015-06-15
相关资源
最近更新 更多