NSInternalInconsistencyException Could not load nib in bundle

江枫思渺然 提交于 2019-11-26 08:29:07

问题


I\'ve created an application for child game.

It loads 12 different questions for each round. After the 4th round the app crashes with the following log:

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
)

I have tried many options but none works, please help me.


回答1:


It looks like you're trying to instantiate a nib called ThemePickerController.nib and it isn't present. Is the nib included as a project member?




回答2:


In project -> Build Phases

Make sure the .xib is added to Copy Bundle Resources




回答3:


Another common issue is trying to load a nib in the init methods of viewControllers. Should be in viewDidLoad.




回答4:


It is easy... select the XIB file and make sure the desired target of the project is checked under the "Target Membership" section (under the "Show the file inspector" tab), and your problem is solved.

It is usually happening when you made a copy of an exists file and added to the project manually because in that case you should check the above mentioned target manually as well.




回答5:


set your button click image like this :

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

instead of this :

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

It works..




回答6:


You may renamed your ViewController That should be updated in AppDelegate file so navigate to AppDelegate.m and do the following.

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

In that XXXX rename your latest ViewController name(i.e renamed ViewControllerName).Now It will work .




回答7:


There is a chance that Base Internationalization will cause a crash with the same error message, because the feature is only supported in iOS 5 and above!

However, since you can start the app and it crash only after a while, it should not be due to Base Internationalization.



来源:https://stackoverflow.com/questions/5415252/nsinternalinconsistencyexception-could-not-load-nib-in-bundle

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!