问题
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