首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >_preferredInterfaceOrientationGivenCurrentOrientation: UIApplication签名

_preferredInterfaceOrientationGivenCurrentOrientation: UIApplication签名
EN

Stack Overflow用户
提问于 2011-11-06 07:21:48
回答 1查看 3K关注 0票数 1

我的应用程序在启动时继续崩溃,并出现了这个奇怪的错误:-[UIApplication _preferredInterfaceOrientationGivenCurrentOrientation:]: unrecognized selector sent to instance 0x23b5f0_preferredInterfaceOrientationGivenCurrentOrientation方法被调用用于自动旋转逻辑,所以我去掉了所有提到的

代码语言:javascript
复制
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

并清理了targets和build文件夹,但它一直记录异常。有没有人遇到过这个奇怪的错误,有没有人修复了它?

崩溃日志:

代码语言:javascript
复制
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:

代码语言:javascript
复制
- (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;   
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-06 08:20:42

你的appDelegate里有这样一行吗?

代码语言:javascript
复制
self.window.rootViewController = [UIApplication sharedApplication];

当出现UIViewControllers之间的转换时,会在幕后调用此方法_preferredInterfaceOrientationGivenCurrentOrientation。事实上,你的UIApplication是消息的接收者,这意味着你已经在你的应用程序中把它转换成了一个视图控制器或者类似的东西。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8024063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档