zoukankan      html  css  js  c++  java
  • oc学习之路----application.keyWindow.rootViewController与self.window.rootViewController与[self.window makeKeyAndVisible];小发现

    刚才调试的时候除了一些小问题,有一段代码要重用

        NSString *key = @"CFBundleVersion";
            //    取出沙盒中存储的上次使用软件的版本号
                NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
                NSString *lastVersion = [defaults stringForKey:key];
                
            //    取出当前版本号
                NSString *currentVersion = [NSBundle mainBundle].infoDictionary[key];
            ETLog(@"%@===%@=================",self.window,application.keyWindow);
                if ([lastVersion isEqualToString:currentVersion]) {
                    
                    application.keyWindow.rootViewController = [[ETTarBarControllor alloc] init];
                }
                else{
                    application.keyWindow.rootViewController = [[NewFeatureViewController alloc] init];
                    [defaults setObject:currentVersion forKey:key];
                    [defaults synchronize];
                }

    本来是要抽取出来的,然后在工具类里面用[UIApplication sharedApplication].keyWindow.rootViewController替代原来的self.window.rootViewController,但是发现,用真机调试的时候出现黑屏,无法正常显示,我当时就觉得奇怪,不就是把代码的位置换了吗,后来我把Appdelegate的self.window.rootViewController换成

    application.keyWindow.rootViewController,发现还是不行,我那个郁闷啊,后来同样的代码我再虚拟机上运行,妈蛋,可以运行,我就一定在真机上调试,于是,我又回到真机上,我吧application.keyWindow 和 self.window打印出来,注意,这是在真机上,发现appapplication.keyWindow 为空,self.window有值,于是,我吧[self.window makeKeyAndVisible];放到调用application.keyWindow的前面,居然可耻的有值了,真机上也可以运行了,但是不知道什么原因,可能是application的生命周期有关把,那个朋友知道什么原因的说一下啊,就这样一个莫名的bug大致搞定。

  • 相关阅读:
    本地向GitHub提交403错误解决办法(自己的创建的项目)
    zepto-ajax跨域请求接口 jsonp 静态页面数据展示
    自定义获取url方法
    使用swiper 轮播插件ajax 请求加载图片时,无法滑动问题
    背景透明,文字不透明解决办法
    js DOM Element属性和方法整理----转载
    图像处理作业5——SIFT算法与全景图像生成
    应用连续高斯模糊后得到的σ是多少?
    Pandas学习笔记——综合练习
    Pandas学习笔记5——合并
  • 原文地址:https://www.cnblogs.com/superYou/p/4458353.html
Copyright © 2011-2022 走看看