NSInternalInconsistencyException无法在捆绑中加载nib

我已经创build了一个儿童游戏的应用程序。

它每轮加载12个不同的问题。 第四轮后,应用程序崩溃与以下日志:

ImageIO: CGImageRead_mapData 'open' failed '/var/mobile/Applications/4B0202F9-5961-4AC7-A327-604620AF1F94/test.app/pi_ok.png'         error = 24 (Too many open files) 2011-03-24 02:26:34.743 [424:707] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/4B0202F9-5961-4AC7-A327-604620AF1F94/VisualMath.app> (loaded)' with name 'ThemePickerController'' *** Call stack at first throw: (    0  CoreFoundation                     0x3182464f __exceptionPreprocess + 114    1  libobjc.A.dylib                    0x3651dc5d objc_exception_throw + 24    2  CoreFoundation                     0x31824491 +[NSException raise:format:arguments:] + 68    3  CoreFoundation                     0x318244cb +[NSException raise:format:] + 34    4  UIKit                              0x330d2a53 -[UINib instantiateWithOwner:options:] + 1110    5  UIKit                              0x330d3e09 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 92    6  UIKit                              0x3304d5e9 -[UIViewController _loadViewFromNibNamed:bundle:] + 36    7  UIKit                              0x3301afa5 -[UIViewController loadView] + 80    8  UIKit                              0x32effebf -[UIViewController view] + 30    9  VisualMath                         0x00062875 -[DragTriangleViewController hideThemePicker] + 40    10 VisualMath                         0x0005fe93 -[DragTriangleViewController clickDone] + 26    11 CoreFoundation                     0x31794571 -[NSObject(NSObject) performSelector:withObject:withObject:] + 24    12 UIKit                              0x32ee5ec9 -[UIApplication sendAction:to:from:forEvent:] + 84    13 UIKit                              0x32ee5e69 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 32    14 UIKit                              0x32ee5e3b -[UIControl sendAction:to:forEvent:] + 38    15 UIKit                              0x32ee5b8d -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 356    16 UIKit                              0x32ee6423 -[UIControl touchesEnded:withEvent:] + 342    17 UIKit                              0x32ee4bf5 -[UIWindow _sendTouchesForEvent:] + 368    18 UIKit                              0x32ee456f -[UIWindow sendEvent:] + 262    19 UIKit                              0x32ecd313 -[UIApplication sendEvent:] + 298    20 UIKit                              0x32eccc53 _UIApplicationHandleEvent + 5090    21 GraphicsServices                   0x32977e77 PurpleEventCallback + 666    22 CoreFoundation                     0x317fba97 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 26    23 CoreFoundation                     0x317fd83f __CFRunLoopDoSource1 + 166    24 CoreFoundation                     0x317fe60d __CFRunLoopRun + 520    25 CoreFoundation                     0x3178eec3 CFRunLoopRunSpecific + 230    26 CoreFoundation                     0x3178edcb CFRunLoopRunInMode + 58    27 GraphicsServices                   0x3297741f GSEventRunModal + 114    28 GraphicsServices                   0x329774cb GSEventRun + 62    29 UIKit                              0x32ef7d69 -[UIApplication _run] + 404    30 UIKit                              0x32ef5807 UIApplicationMain + 670    31 VisualMath                         0x00002207 main + 70    32 VisualMath                         0x000021bc start + 40 ) 

我已经尝试了很多select,但没有任何作品,请帮助我。

它看起来像你试图实例化一个叫做ThemePickerController.nib的笔尖,它不存在。 是否将笔尖作为项目成员?

在项目 – >构build阶段

确保将.xib添加到Copy Bundle Resources

另一个常见问题是在viewController的init方法中加载一个nib。 应该在viewDidLoad中。

这很容易…selectXIB文件,并确保在“目标成员”部分(在“显示文件检查器”选项卡下)检查项目的目标,并解决您的问题。

这通常是在您制作存在文件的副本并手动添加到项目中时发生的,因为在这种情况下,您应该手动检查上述目标。

设置你的button点击图像像这样:

 NSString *path1 = [[NSBundle mainBundle] pathForResource:@"btn_twelve_month" ofType:@"png"]; [btn_twelve_month setImage:[UIImage imageWithContentsOfFile:path1] forState:UIControlStateNormal]; 

而不是这个:

 [btn_twelve_month setImage:[UIImage imageNamed:@"btn_twelve_month.png"] forState:UIControlStateNormal]; 

有用..

你可以重新命名你的ViewController这应该在AppDelegate文件中更新,所以导航到AppDelegate.m并执行以下操作。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.viewController = [[XXXXViewController alloc] initWithNibName:@"XXXXXViewController" bundle:nil];

在那XXXX重命名您的最新的ViewController名称(即重命名ViewControllerName)。现在它将工作。

基地国际化有一个机会,会导致崩溃与相同的错误消息,因为该function只支持iOS 5及以上 !

但是,由于您可以启动应用程序,并且只会在一段时间后崩溃,所以不应该由于基本国际化。