在应用商店的应用程序中报告了崩溃,异常为:
`NSInternalInconsistencyException Could not load NIB in bundle...`
这个崩溃问题在过去两个月内一直出现在iOS 10设备上,并且涉及多个xib文件。
一个典型的实例详情:
Fatal Exception: NSInternalInconsistencyException
Could not load NIB in bundle: 'NSBundle </var/containers/Bundle/Application/XXX/MyApp.app> (loaded)' with name 'VideoView'`
Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x18d7551b8 __exceptionPreprocess
1 libobjc.A.dylib 0x18c18c55c objc_exception_throw
2 CoreFoundation 0x18d755100 -[NSException initWithCoder:]
3 UIKit 0x193b04fcc -[UINib instantiateWithOwner:options:]
4 UIKit 0x193965e14 -[UIViewController _loadViewFromNibNamed:bundle:]
5 UIKit 0x193737980 -[UIViewController loadView]
6 UIKit 0x1936035bc -[UIViewController loadViewIfRequired]
7 UIKit 0x1936034ec -[UIViewController view]
8 MyApp 0x100135580 -[VideoEventController addMediaPlaybackViewForChannel:andProgram:ofType:] (VideoEventController.m:113)
用于初始化视图控制器的代码如下:
self.videoViewCtrl = [[VideoViewController alloc] initWithNibName:@"VideoView" bundle:nil];
[mediaView addSubview:self.videoViewCtrl.view]; //Crash trace points to this line in code
清单:
- 对于特定的xib,问题不总是可重现,因此不存在引用错误或xib名称中没有拼写错误
Copy Bundle Resources
中存在xib文件- xib文件链接到
Target Membership
- xib文件的位置设置为
Related to Group
代码使用AutoLayout而不是大小类。 项目针对iPad和iPhone分别具有符合命名约定的单独xibs。
是否有人遇到过相同的问题? 无法加载NIB的原因可能是什么?