IOS9-升级Xcode7后报错Assertion failure in -[UIApplication _runWithMainScene:处理

来源:互联网 发布:js语言精粹在线 编辑:程序博客网 时间:2024/04/30 04:56

以下是本来在使用Xcode7时遇到错误的一些解决方案,有网友提供的,也有自己总结的,希望能帮助大家。

错误之

*** Assertion failure in -[UIApplication _runWithMainScene:transitionContext: completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3505.16/UIApplication.m:3294

这个错误让我一度头疼不已,在网上找了很多方案都没解决,后来自己慢慢的摸索出来的,先给大家分享我自己的解决方案。


解决方案一、不能在

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法里面添加引导页代码,(本人就属于这种情况,真TM的坑爹的,苹果不说谁TM知道啊!!!),如下这段代码是添加引导页的,把这段代码注释掉就正常了。
    //xcode7 不能在application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions里面加载启动页,所以下面这段添加引导页的代码应该是要删除的。 切记!切记!  //    if (![[NSUserDefaults standardUserDefaults]boolForKey:@"everLaunched"]) {  //        myView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.window.bounds.size.width, self.window.bounds.size.height)];  //        [myView setImage:[UIImage imageNamed:@"mainPage.png"]];  //        [self.window.rootViewController.view addSubview:myView];  //        MiIntroductionViewController *introVC=[[MiIntroductionViewController alloc]initWithNibName:@"MiIntroductionViewController" bundle:nil];  //        [self.window.rootViewController presentViewController:introVC animated:NO completion:nil];  //        [[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"everLaunched"];  //    }else{  //        [self buildInstoSpecialEdition];  //    }  
解决方案二、
新的SDK不允许在设置rootViewController之前做过于复杂的操作,导致在didFinishLaunchingWithOptions 结束后还没有设置rootViewController。(这个方案是网友提供的,但是没解决我的问题),具体做法是,先虚设一个rootViewController,代码如下
//    [self.window makeKeyAndVisible];  //    UIViewController* myvc = [[UIViewController alloc] initWithNibName:nil bundle:nil];  //    self.window.rootViewController = myvc;  
解决方案三
在Info.plist中,可以找到:“Main storyboard file base name”  String “Main”,删掉这个条目, 再启动,屏幕变成了黑屏,然后手动添加window,具体代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {      // Override point for customization after application launch.      self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; //全屏window      self.window.backgroundColor = [UIColor whiteColor]; //白色背景      [self.window makeKeyAndVisible]; //      return YES;  }  



上面三种办法,都没有解决我的问题,因为我的window本来就是手动的。
尝试了网上的办法之后,没有解决问题,最后从错误返回的字面意思解决了。
//    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];    UINavigationController *navg = [[UINavigationController alloc]initWithRootViewController:rootViewController];    navg.navigationBarHidden = YES;    self.window.rootViewController=navg;    self.window.backgroundColor = [UIColor whiteColor];    [self.window makeKeyAndVisible];
给window设置主屏幕大小 屏掉 试了一下 就OK了 !!!



1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 地垫粘地板了怎么办 棉麻衬衣皱了怎么办 麻料衣服烫皱了怎么办 在京东买一双奥康鞋没有防伪怎么办 足球鞋丁掉了一颗怎么办 鼻子有点大想变小该怎么办 阿勒泰小东沟风景区边防证怎么办 孩子上一年级了学习很差怎么办 孩子作息时间不规律怎么办 冬天冻脸怎么办小妙招 冬天冻脚怎么办小妙招 冬天脚冷怎么办小妙招 初中生不爱学习父母该怎么办 早孕办公室买新办公桌怎么办 一年级学生专注度差怎么办 pscs6界面字体太小怎么办 psd文件打不开程序错误怎么办 经常熬夜皮肤暗黄怎么办 炎症引起的经期不来怎么办 父母沉迷于炒股该怎么办 宝宝嘴周边红了怎么办 后背被嘴吸出牙印怎么办 宝宝嘴巴周围长湿疹怎么办 宝宝脸蛋都是红红的湿疹怎么办 药流药第一天晚上的忘吃怎么办 我有口臭不想出门怎么办 入职10天想辞职怎么办 提完辞职报告不想上班了怎么办 吃流产药出血少怎么办 新车漆被刮掉了怎么办 新车被别人撞了怎么办 新买的车被撞了怎么办 临时牌掉了一张怎么办 车子在停车场被刮了怎么办 金毛不想养了怎么办 gta5老是掉线怎么办ps4 养狗身上有味道怎么办 身上有异味怎么办%3f 花钱花多了后悔怎么办 想去当兵有纹身怎么办 爸家里人欺负我妈怎么办