2011-11-05 104 views
1

我的应用程序在启动时继续崩溃,出现这个奇怪的错误:-[UIApplication _preferredInterfaceOrientationGivenCurrentOrientation:]: unrecognized selector sent to instance 0x23b5f0。该_preferredInterfaceOrientationGivenCurrentOrientation方法被调用自转逻辑,所以我拿出所有提及的UIApplication _preferredInterfaceOrientationGivenCurrentOrientation:SIGABRT

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 

和清洗的目标,并建立文件夹,但它一直记录异常。有没有人遇到这个奇怪的错误,并有任何人修复它?

崩溃日志:

2011-11-05 17:14:17.369 AppName[1542:707] -[UIApplication _preferredInterfaceOrientationGivenCurrentOrientation:]: unrecognized selector sent to instance 0x23b5f0 
2011-11-05 17:14:17.375 AppName[1542:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIApplication _preferredInterfaceOrientationGivenCurrentOrientation:]: unrecognized selector sent to instance 0x23b5f0' 
*** First throw call stack: 
(0x36da28bf 0x321121e5 0x36da5acb 0x36da4945 0x36cff680 0x31b35b7d 0x338532f9 0x33852e33 0x31b3be2d 0x3382cf19 0x36d01803 0x36d02491 0x31bee4bf 0x31befbb9 0x31b28a45 0x319b2227 0x319ac313 0x3197a921 0x3197a3bf 0x31979d2d 0x329d4e13 0x36d76553 0x36d764f5 0x36d75343 0x36cf84dd 0x36cf83a5 0x319ab457 0x319a8743 0x2cbb 0x2c60) 
terminate called throwing an exceptionkill 
quit 
Program ended with exit code: 0 

编辑1:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    //add the scroll view to our main window  
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    viewController = [[[ViewController alloc] initWithNibName:@"MainWindow" bundle:[NSBundle mainBundle]] autorelease]; 
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade]; 

    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible];  

    splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)]; 
    splashView.image = [UIImage imageNamed:@"Default.png"]; 
    [window addSubview:splashView]; 
    [window bringSubviewToFront:splashView]; 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:2.0]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:window cache:YES]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)]; 
    splashView.alpha = 0.0; 
    splashView.frame = CGRectMake(-67, -95, 492, 710); 
    [UIView commitAnimations]; 

    NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 
    [[NSUserDefaults standardUserDefaults] setObject:version forKey:@"version_preference"]; 

    return YES; 
} 

回答

2

你有你的appDelegate这样一行折轴的?

self.window.rootViewController = [UIApplication sharedApplication]; 

此方法_preferredInterfaceOrientationGivenCurrentOrientation正在引擎盖下调用时UIViewControllers之间的转换出现。您的UIApplication是消息接收器的事实意味着您已经将它转换为您应用程序中某处的视图控制器或类似的东西。

+0

测试...这听起来正确。我将发布我的当前 - (BOOL)应用程序:(UIApplication *)应用程序didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法 – CodaFi

+0

漂亮,请务必查看源代码的splashView部分。它为启动画面做了非常酷的转换。 – CodaFi

相关问题